タグ

VBAに関するkenjikanaのブックマーク (46)

  • 個人用マクロブック(PERSONAL.XLSB)の作成方法 | Excel作業をVBAで効率化

    個人用マクロブックとは VBAで作成したマクロはブックに保存されます。そのため、そのマクロを動かしたい場合はそのブックを開いておく必要があります。これはどのようなマクロであっても同じです。 そして、どのブックからでも共通に使いたいマクロを登録するブックが「個人用マクロブック」になります。 個人用マクロブックの保存先 個人用マクロブックとは「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォルダに保存される「PERSONAL.XLSB」というファイルのことを指します。Excelをインストールした時点では存在しておらず、あとから作成する必要があります。(作成手順は後述しています。) Excelは起動時に上記の「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォ

    個人用マクロブック(PERSONAL.XLSB)の作成方法 | Excel作業をVBAで効率化
  • VBA・Excel マクロを簡単に高速化する4つの方法!

  • Office TANAKA - VBA高速化テクニック

    2018年12月に、すべて検証し直して、コンテンツも新しくしました。コンテンツは1995年頃パソコン通信「NIFTY-Serve」に書いたものがベースになっていますが、パソコンの性能が向上したことによって、理論的には遅いけど実際には影響ないということもあります。そのへんを検証し直しました。 また「VBA高速化"テクニック"」と言っていますが、来であれば"テクニック"以前の問題が多いです。たいてい私に「田中さん、マクロが遅いので見てください」と質問されるときは「そもそも、なんでそんなコード書くの?」というマクロばかりです。まずは「 無駄なSelectをしない」「 余計なことはしない」あたりを、よ~く注意してください。それだけで十分高速になります。さらに、マクロ全体の構成や"考え方"も検討してください。プランAでは遅かった。じゃ、プランBでやってみよう。それでも遅かったらプランCで。という

  • 遅い…重い…そんなエクセルVBAプログラムの処理速度を劇的に改善する方法 | 隣IT

    みなさん、こんにちは! タカハシ(@ntakahashi0505)です。 せっかく組んだエクセルVBAの実行速度が遅いな~って時ありませんか? 読み書きするデータ数が多かったり、ファイルにたくさんの計算式が仕込まれていたりすると、とっても遅くなってしまうことがあります。 しかも実行中って、PCが使えないわけではないのですがアプリケーションが「応答なし」になると嫌なので、結局待たなくてはなりませんよね。 そんな時にエクセルVBAのプログラムの処理速度を速くするステキなテクニックを紹介します。 また、合わせてプログラムの実行時間を測定する方法についてもお伝えしますね。 これで重いマクロともオサラバ…では早速行ってみましょう! 今回の課題とするプログラム 処理速度を無駄に稼ぐだけのこんなプログラムを用意してみました。 Sub MySub() Sheet1.Cells.Clear Sheet2.C

    遅い…重い…そんなエクセルVBAプログラムの処理速度を劇的に改善する方法 | 隣IT
  • VBA 指定した年 月 の指定した曜日の第5週の日付があれば返す関数 - Qiita

    第5週の日だけの必要性 第5週というのはオフィスでは無視されています。 1. 海外では28日を超えると翌月の週にカウントしている 2. ヨーロッパは月単位ではなく第何週というカウントをしている。 1年は365日...なので72週でカウントする。なに1日に足りないって?たぶんバカンスなのかな。ヨーロッパで使われるWeekカレンダーとは|2014年のウィークカレンダー 3. アメリカも給料は隔週単位で出る(もちろん月1もあり)ことが少なくないので、やっぱり第5週がいらない。 4. そんな感じでどこも必要とされないので存在しない あとはイスラム圏と日以外のアジア、ロシアあたりですが、あまりなさげ。 使用方法 前提条件 まず第5週は29日以降しか存在しません。つまり最大で3日しか存在しません。 2月はうるう年でなければ、第5週は存在しません。 DateSerialであらわすと DateSeri

    VBA 指定した年 月 の指定した曜日の第5週の日付があれば返す関数 - Qiita
  • 仕事の効率化なんてするもんじゃない

    ExcelVBA組んだりしてる。 ググれば誰にでも出来る、簡単なやつだ。 元々、CとかJavaとかやってたから独学。 独学っていうかヘルプ読むなり感覚で分かるけどな。 念のためVBAの書籍読んだりもしたぞ。 入社1年目、Excel使いとして社内で評判になった。 1週間かかるExcel作業をボタン一つ押すだけ、5分待つだけで完了になるツールを作った。 (念のためバックアップもしっかりとるツールだ) そして今、5年が経つが5年で60個はツール作ったんじゃないか? 月1、2ペースで作った。私の休憩時間は飛んでった。 1日かける仕事を5分にしたり、その他効率化作業をやりすぎて 他の仕事がどんどん舞い込んでくるようになった。 「増田さんならできるよね?」という一言を添えて。 いやさ、お前ら自分で組む気は無いのかよww 頼まれた仕事やったところで「自分には一銭も返ってこない」ってのがほんとクソ。 自

    仕事の効率化なんてするもんじゃない
  • VBA Format 関数:書式や形式を指定して文字列に変換する

    はじめに Excel VBA マクロの Format 関数から書式や形式を指定して文字列に変換する方法を紹介します。 Format 関数は、数値や日付を指定した書式や形式で文字列型 (String) に変換します。 数値の 1234 なら 1,234 のように文字列に変換できます。 日付の 2000/1/2 なら 2000年01月02日 のように文字列に変換できます。 数値や日付を指定の形式に変換したいときに使用します。

    VBA Format 関数:書式や形式を指定して文字列に変換する
  • VBA コーディングガイドライン - You.Activate

    このガイドラインについて システム開発の会社には、通常コーディングルールというものが存在します。それぞれ会社ごとに異なりますが、コードの品質を一定に保てるよう各社工夫されているようです。 VB.NETやC#、Javaにはコーディングルールを集めた書籍が存在します。 VB.NETルールブック ~読みやすく効率的なコードの原則 C#ルールブック ~読みやすく効率的なコードの原則 Javaルールブック ~読みやすく効率的なコードの原則 これらは何もシステム開発の標準というわけではありませんが、一例として誰でも見られる形で販売されているのは素晴らしいことです。 私はVBAにおいても一応指針となるようなものが欲しいと思い、そのような書籍を待ち望んでいますがどうにも発売される気配はありません。 一応QiitaというサービスでExcel VBAコーディング ガイドライン案というものを見つけましたが、少し

  • Excelの表をWordに貼り付ける方法とWordのテキストをExcelのセルに埋め込む方法

    今回はExcelで作成した表を、Wordに取り込んで表示させる方法とWordに書かれた文章をExcelのセルに表示する方法を解説する。 Wordの資料にExcelの表を貼り付ける必要性に迫られることは、実際の業務において多々あると思う。その際に、今回のマクロ/VBAを使うと便利ではないだろうか。Excelの表の値を急きょ変更する必要に迫られても、「リンク先の更新」で、Wordに貼り付けた表に、変更されたExcelの値を即座に反映させることができる。 一方で、Word文書をExcelに読み込む機会はあまりないかもしれない。しかし、Excelで何らかのアンケート表を作成する場合、以前に使用していたWordの文書を、アンケート表に貼り付けたい場合も出てくる可能性がないとは言えない。こういった場合には、今回のサンプルは役に立つのではないかと思う。 Excelで作成した表を、Wordに取り込んで表示

    Excelの表をWordに貼り付ける方法とWordのテキストをExcelのセルに埋め込む方法
  • Excel 2016でUTF-8のCSVファイルがサポートされるようになりました。 | 初心者備忘録

    このページにもあるように、AcrobatはOLEオートメーション機能によってVBAマクロから操作することが可能です。 今回はWordの差し込み印刷機能のように、指定したPDFファイルの指定したフォームフィールドに値を差し込む処理を考えてみます。 対象となるPDFファイルには下図のように氏名(フィールド名:fldName)、年齢(フィールド名:fldAge)、住所(フィールド名:fldAddress)の3つのフィールドがあり、 下図のようなセルA2 – C6までの値を差し込むことを想定しています。 早速考えたコードが下記になります。 ※ 動作確認はWindows 7 + Acrobat XI環境で行いました。 Option Explicit Public Sub Sample() Dim app As Object Dim avdoc As Object Dim i As Long Cons

    Excel 2016でUTF-8のCSVファイルがサポートされるようになりました。 | 初心者備忘録
  • Excelマクロ(VBA)初心者でも簡単にできる、マクロの組み立て方 - 日々のこと

    Excelマクロ(VBA)というのは、ちまっとしたツールを作るのにとても便利な存在です。 職場でExcelを使う場面は非常に多いと思うので、覚えておくと仕事がとても楽になります!人力ならちまちまちまちま作らないといけないようなファイルが、ボタンポチっとしてトイレ行って帰ってきたら完成してたら嬉しいでしょ。 独学でVBAを覚えた私が、職場ではどんな風にツールを作っているのかざっくり書いてみます。 たとえばこんな依頼があったとします 要望 一覧表から削除リストにあるIDを削除して、結果ファイルを作るマクロを作って欲しい。毎日このマクロを動かすことにするから、結果ファイル名の最後には実行した日付を入れて欲しい。入出力ファイルの保存先はそのときで変わるかも。 種別ファイル名 インプット 01_一覧表.xlsx 02_削除リスト.xlsx アウトプット 【削除後】一覧表_[日付].xlsx …と、い

    Excelマクロ(VBA)初心者でも簡単にできる、マクロの組み立て方 - 日々のこと
  • エクセルVBAを学びたいので、初心者向けに良さそうなサイトをまとめた - FX初心者向けまとめ解説(株式投資もあるよ)

    文系人間なんです(プログラムとか無理) わたしはけっこうな文系人間で、特にPCとの親和性が非常に低い。 どのくらい苦手かというと、ACCESSほぼ無理(最初から組まれているデータベースを利用する程度)、EXCELはマクロまでって感じ。SEが多いと言われるはてなユーザーじゃ珍しいレベルのダメさ、だと思う。 もとからそれほどPCが大好きってタイプじゃ無かった。 けど、ここまでできないのは、あまりこの手のスキルが要求されない職場環境だったことも影響していると思う。なんというかいろいろすでに整っていて、既存ものを利用したほうが効率が良さそうな感じ。 が、一方で自分でプログラム作れるってことへの漠然としたあこがれはある。 また、さすがに社会人として経験年数も増えてきたので、もう少しPCスキルも上げておきたいところ。 おそらく自分で(簡単な)VBAくらいできれば、業務の柔軟性みたいなものが向上する気が

    エクセルVBAを学びたいので、初心者向けに良さそうなサイトをまとめた - FX初心者向けまとめ解説(株式投資もあるよ)
  • [VBA便利技]Excelのリストに従ってメールを一斉送信

    Excelで管理している顧客の連絡先やサークルのメンバー情報を基に、メールを配信できれば便利だと思いませんか。メールクライアントで配信グループを定義したり、専用のツールを利用したりしなくても、マクロを作成すれば、Excel上からそのままメールを配信できます。一部の人だけ配信先から除外したいという場合も、Excel上で「○」「×」のフラグを切り替えるだけで簡単に対応できます(図1)。 Basp21コンポーネントのインストール ここでは、馬場達夫氏が開発したフリーウエアのコンポーネント「Basp21」を利用する方法を紹介します。Basp21は、メール送信をはじめ、ファイルのアップロード、文字コード変換など、かゆいところに手が届くさまざまな機能が用意されています。インストールは、同氏のWebサイト(http://www.hi-ho.ne.jp/babaq/basp21.html)から「BASP2

    [VBA便利技]Excelのリストに従ってメールを一斉送信
  • ExcelVBAでGoogleMap GooglemapのマーカーアイコンをMarkerImageとGoogleChartAPIを使って動的に生成する

    緯度、経度情報からGoogleMap上に複数のマーカーを立てた後、「これじゃデータの中身がわからない・・・」 そんなときに見つけたのがGoogleChartAPIのDynamic Icons。URLを投げるとアイコンを作成してくれます。 あとはGooglemapのマーカーのコンストラクタ内でMarkerImageのURLにDynamic IconsのURLを指定します。 以下、コード↓↓ var GChartApi ='http://chart.apis.google.com/chart?chst=d_bubble_text_small&chld=bbtl|'; var map = new google.maps.Map(document.getElementById('map-canvas'),mapOps); var iconAnchor = new google.maps.Point

  • Excel VBAでWebサービス - ExcelでGoogleマップを表示しよう

    はじめに Excelで作った住所録の地図を表示する場合、ブラウザを起動し、Googleマップのような地図ページを表示し、住所をコピペして検索するのが通常の操作です。複数の住所の地図を順次見たい場合は、ウィンドウの切替と住所のコピペとを、その都度繰り返す必要があって面倒ですよね。 今回は、住所録のワークシート内にブラウザオブジェクトを埋め込み、Google Maps APIを利用して地図を表示させます。Excel内で住所の入ったセルをダブルクリックするだけで地図を切り替えることができるので、ウィンドウの切替も住所のコピペも不要です。もちろん、地図の東西南北への移動、ズームイン/アウトも可能です。 動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。 Excel VBAWebサービス - Exce

    Excel VBAでWebサービス - ExcelでGoogleマップを表示しよう
  • 【特集】Excel VBAでIEを思いのままに操作できるプログラミング術 ~窓の杜 特別レッスン~

  • SpinNet : Notice of Service Termination

    ご訪問いただいたお客様へのお知らせ Information for customers visiting this Web site from SpinNet アクセスいただいたWebサービスは提供を終了いたしました。 長年にわたり、多くの皆様にご利用いただきましたことを心よりお礼申し上げます。 SpinNetトップページへ The Web service you are trying to access has been terminated. We would like to thank all of you for your patronage over the years. Go to the SpinNet

  • VBA応用(固定長形式テキストデータの書き出し)

    「桁数」は実際には「バイト数」になります。項目順に左から境界文字なく指定バイト数単位で並べていって、レコード当たり48バイトでファイルに出力するわけです。 まず、出力された固定長形式テキストファイルを見てみます。 Windows標準の「メモ帳」でも見ることはできますが、空白や改行など細かい編集状態が確認しにくいので「秀丸」というテキストエディタで見ることにします。(若干、設定を変更しています。) (この画像をクリックすると、このページのサンプルがダウンロードができます。) こちらは、改行(CrLf)コード付きで出力した状態です。改行(CrLf)コードが各レコード右端に付加されるので、実際は1レコードが50バイトになります。 こちらは、改行(CrLf)コードなしで出力した状態です。上の表の通り1レコード48バイトとなり、49バイト目からすぐに2レコード目が出力されているのでレコード境界が分か

  • VBA応用(テキストデータの書き出し)

    シートの中の一部分を直接書き出すこともできます。 ここでも、古くからのBASICの記述方法と、FSO(FileSystemObject)を操作する方法で、テキストファイルに書き出す方法を解説します。 ワークブックの保存でもテキスト形式(*.txt)がありますが、複数項目だとタブ区切りになってしまいます。また、シートの一部(例えば見出しを除くなど)を出力することはできませんが、 ここでの方法は出力する範囲も自由で、出力レコードも独自に編集できます。 なお、これから新しく取り組む方は古いステートメントではなく、最初からFSO(FileSystemObject)を学んで下さい。 まずは、「古くからあるステートメント」の方法です。 見出しを除くような意味で、2行目から下に向かってシートのA列上にあるデータを全て書き出します。 '***********************************

  • 複数のテキストファイルをエクセルに貼りつける方法 - OKWAVE

    こういう手作業では面倒なものはVBAでやるほか仕方がない。そういうことを認識した上で、今までVBAを少しやった人なら WEB記事を調べて、コードを作れるでしょう。 今までやったこともないなら丸投げの、回答コピペになるが、その後の「質問者に合わせた、対処(修正)が出来ず無理だろう。 VBAでは無いがFSOを使うほうが良いでしょう。Dir関数を使うというのも在るが (1)フォルダ内のファイル名を順次掴む。 テキストファイル以外があるなら、拡張子で篩(ふるい)に掛ける。 (2)そのファイル名でそのテキストファイルを開き、レコードを終わりまで1つずつ、読む エクセルでは列に当たる項目に分離して、その行にデータをセット刷る 次のレコードを読む (3)終わると、次のファイルを掴んで同じ処理をする。 そのフォルダで尽きた場合は、次のフォルダに行く ーー フォルダの数はきまっているのか。すなわち名前は(列

    複数のテキストファイルをエクセルに貼りつける方法 - OKWAVE