VBA樹林– category –
-
【VBA】Wordのテーブル内の値を取得して、Excel内で検索する方法|InStr関数で検索位置を特定する
経緯 Wordには、Excelのように「A1」や「F6」といったセルアドレスの概念がありません。そのため、Wordのテーブル内の特定位置にあるデータを取り出し、それをExcelの中で検索する方法を調べてみました。 結果として、Wordのテーブルの位置を (行,列) で指... -
【VBA】Wordのテーブルの指定したセルに文字を入力する方法|座標指定で操作する基本構文
経緯 Excelでは「A1」や「F6」などでセルを簡単に指定できますが、Wordではこのようなセルアドレスの記法が存在しません。そこで、Wordのテーブルにおいて、特定の座標位置に文字を入力する方法を調べてみました。 結果として、VBAを使えば**「テーブルの... -
【Word × VBA】Wordでもマクロは使える!マクロの記録・実行方法を丁寧に解説
経緯 これまでVBA(マクロ)はExcel専用のものだと思っていましたが、実はMicrosoft Wordにも「開発」タブがあり、VBAを使うことが可能です。今回、実際にWord上でマクロを使う方法を学習しましたので、その手順を備忘録としてまとめました。 WordでもVBA... -
【VBA】Split関数で文字列を分割して値を取り出す方法|1行のセルから複数の情報を取得する基本構文
経緯 Excelのセルに「サッカー、8月1日、8時から、学校グラウンド」といった1行で複数の情報を含む文字列が入力されている場合、それをVBAで個別に分解して使えるようにしたいと思い、今回その方法を学習しました。 調べてみると、Split関数を使えば簡単に... -
【VBA】フォルダ内の複数ExcelファイルからD列の値を取得してリスト化する方法|Do While ループで一括処理
経緯 日々の業務で、「複数のExcelファイルに共通項目が含まれていて、それらを一括で集計したい」と思う場面がありました。特に、各ExcelファイルのD列(4列目)のデータを1つのシートにまとめたいと考え、今回VBAで自動化する方法を学習しました。 やり... -
パソリPC-S300で読み取ったデータをExcelに出力したい【VBA】
経緯 非接触ICカードリーダーを使って、そのカードの中の数値でいろいろできないか試したくて、 今回勉強しました。 ドライバーをインストール はじめに以下のドライバーをダウンロードして、https://www.sony.co.jp/Products/felica/consumer/support/dow... -
【VBA】B列に入力があったらA列に今日の日付を自動入力する方法|Worksheet_Changeイベントで対応
経緯 日々の業務で、「B列に値を入力したタイミングで、A列にその日の日付を自動的に記録したい」と思う場面がありました。作業日や入力日を管理したいときに便利だと考え、今回はVBAの自動記録処理を学習しました。 実現したいこと B列に何か入力されたら... -
【VBA】特定のセルを編集不可にする方法|Worksheet_Changeでエラーメッセージ表示&元に戻す処理
経緯 Excelでは、セルを編集できないようにするには「セルのロック → シート保護」といった操作が必要です。しかし、この手順は毎回設定が面倒で、VBAで同じような機能を実装できないかと思い、今回調べてみました。 結果として、Worksheet_Changeイベント... -
【VBA】「未知の実行時エラーです。」VBScriptファイルが実行できない原因と対処法|セキュリティ設定を確認
経緯 VBAから外部のVBScriptファイル(.vbs)を実行しようとしたところ、「未知の実行時エラーです。」というエラーメッセージが表示され、スクリプトの実行ができませんでした。 最初はスクリプトの記述ミスかと思いましたが、調べていく中で、Excel側の... -
【VBA】マクロを有効にするか毎回聞かれるのが面倒|自動で有効化する方法とその注意点
経緯 VBAで作成した .xlsm ファイルを開くたびに、「マクロを有効にしますか?」というメッセージが毎回表示されるのが面倒だと感じていました。日常的にマクロ付きファイルを扱う場合、この操作が煩わしく感じる方も多いのではないでしょうか。 そこで今... -
【VBA】セルに値を入力したら、1つ列を飛ばしたセルに自動で移動する方法|入力効率を高めるテクニック
経緯 Excelでの入力作業の中で、「値を入力したあと、隣の隣(1列飛ばし)に自動でセルを移動したい」という要望を受けました。これを実現することで、マウス操作なしで素早く連続入力ができ、作業効率が向上します。 そこで、今回VBAを使って入力セルの自... -
【VBA】VBAでも例外処理は可能?On Errorステートメントで安全なコードを書く方法
経緯 Excel VBAでマクロを組んでいると、予期しないエラーが発生することがあります。C#などで使える try-catch のような例外処理構文が、VBAにもあるのか気になり、今回調べてみました。 結論から言うと、VBAでは On Error ステートメントを使うことで、... -
【VBA×タスクスケジューラ】Excelファイルのバックアップを自動で取得する方法
経緯 Excelで作業していると、誤って保存してしまったり、ファイルが破損するといった事態は誰にでも起こり得ます。そのようなトラブルに備えて、定期的にバックアップファイルを自動作成したいと思い、今回VBAとタスクスケジューラを組み合わせた方法を学... -
【VBA】ExcelファイルをPDFに変換する方法|ExportAsFixedFormatの活用
はじめに Excelで作成した資料をPDF化したい場面は非常に多くあります。特に業務で複数のExcelファイルを一括でPDF化する処理を自動化できると、大きな時短になります。 私自身、「フォルダ内のすべてのExcelファイルをPDFに変換したい」というニーズがあ... -
【VBA】Callステートメントで取得した変数を他のモジュールでも使う方法|グローバル変数の活用
経緯 Excel VBAで複数のモジュールを使ってコードを整理していたところ、「Module1で取得した変数を、Module2の処理でも使いたい」という場面がありました。 具体的には、Callステートメントを使って別のサブルーチンを呼び出し、そこで代入された値を、呼... -
セルに文字を入力したら自動で行が追加される方法【Excel VBA】
はじめに Excelで重複データを処理していると、「下の方の値を優先して取得したい」と思う場面があります。私も以前、MATCH関数やINDEX関数を使って値を取得していましたが、どちらも上にある値が優先されてしまうため、意図したデータを取得できませんで... -
VBAで列の一番下のセルの行番号を取得する方法【.End(xlUp)の使い方】
はじめに ExcelでVBAを使って作業を自動化していると、特定の列で最後に入力されているセルの行番号を取得したい場面があります。私の場合は、「B列の中で最後に値が入力されている行を取得したい」と思い、その方法を調べて実装してみました。 結論から言... -
セルに文字を入力したら自動でプログラムが動く仕組み【VBA × Worksheet_Change】
はじめに ExcelでVBAを使って自動化をしていると、「セルに値を入力したら、何かの処理が自動で実行されるようにしたい」というニーズはよくあります。私の場合は、B列に文字が入力されたら、自動的に日付を入力するような処理をしたくて、その方法を調べ... -
セルを下から上に向かって検索する方法【VBA × Step -1】
はじめに ExcelでVBAを使って作業をしていると、「セルの内容を下から上に向かって検索したい」という場面があります。たとえば、「A列にたくさんの名前が並んでいて、その中で一番下にある“森”という苗字を探したい」といったケースです。 今回は、For Ne... -
VBAで切り取り・コピーのモードを解除する方法【Application.CutCopyMode の使い方】
はじめに Excel VBAで処理を自動化していると、「セルをコピー → 別のファイルに貼り付け → 元ファイルを閉じる」という流れを実装したい場面があります。私もまさにその処理を組もうとしていたところ、「コピー元のファイルを閉じる」処理でエラーが発生... -
Excelファイルを開いたときに自動でセルA1に移動させる方法【VBA × ThisWorkbook】
はじめに 「誰かに見せるExcelファイルは、必ずA1セルから表示されるようにしておくこと」――そんなルールを上司から言われたことはありませんか?私自身、そのルールをよく忘れてしまうため、「ファイルを開いたときに自動でA1セルに移動する方法」をVBAで... -
【VBA】セル範囲を選択したときに処理を実行する方法【Worksheet_SelectionChange】
はじめに ExcelでVBAを使っていると、特定のセルが選択されたときに処理を実行したいという場面があります。これまでは1つのセル(例:A1)に対して処理を割り当てていましたが、今回は「A1からB3までの範囲内のどれかが選択されたら処理を行う」というよ... -
VBAで現在の時刻を比較して処理を分岐する方法【CDate × Time関数】
はじめに VBAで処理を組むときに、「現在の時間が○○時を過ぎていたら処理を中止する」といった、時間を使った条件分岐をしたいことがあります。私も実際に、「17時を過ぎていたらデータの書き込みをさせないようにしたい」という要件があり、その方法を調... -
【VBA】今日の日付が入力されたセルを探す方法|Match関数の活用術
はじめに VBAで日付を扱う処理をしていると、「指定した範囲に今日の日付が入力されているセルがあるかどうかを判定したい」というニーズはよくあります。 私自身も、A列に連続した日付が入力されているシートにおいて、「今日」の日付が入力されたセルの... -
【VBA】セルをロック・解除する方法|Lockedプロパティの使い方
経緯 VBAを使って、特定のセルだけをロックしたいと考え、今回、セルのロックおよびロック解除の方法について学びました。 解決方法:Lockedプロパティを使う Excel VBAでは、セルやシートに対して**Lockedプロパティ**を設定することで、ロック(編集禁止... -
【VBA】シートを保護・解除する方法|ProtectとUnprotectの使い方
経緯 VBAを使って、シートを保護・解除する操作を自動化したいと考え、今回、その方法について学びました。 解決方法:ProtectとUnprotectを使う Excel VBAでは、シートの保護・解除をそれぞれ簡単な一行で実現できます。 シートを保護するコード ActiveSh... -
【VBA】Excelを開いたときに自動でプログラムを実行する方法|Workbook_Openイベントの使い方
経緯 Excelファイルを開いたときに、自動でプログラムが実行されるようにしたいと考え、今回、VBAの自動起動処理について学びました。 解決方法:ThisWorkbookモジュールでWorkbook_Openを使う Excelが開かれたタイミングでプログラムを自動実行するには、... -
【VBA】現在の時刻を取得する方法|Now関数の使い方
経緯 VBAを使って、現在の時刻を取得し、それをもとに条件分岐を行いたいと考え、今回、「今の時間」を取得する方法について学びました。 解決方法:Now関数を使う 現在の「日付と時刻」を取得するには、VBAの**Now関数**を使用します。 時刻の取得コード ... -
【VBA】If~ElseIf~Elseを使った分岐処理|時間によるプログラム制御
経緯 VBAでプログラムを作成する中で、条件分岐をさらに細かく増やしたいと考え、今回、**If ElseIf Else**構文を使った分岐方法について学びました。 解決方法:If~ElseIf~Else構文を使う 今回は、現在の時間に応じて処理を切り替えるという実例で学習... -
【VBA】「Shift + →」と同じ動作を再現する方法|RangeとOffsetを使う
経緯 VBAを使って、キーボード操作の**「Shift + →」**(右方向へ範囲選択拡張)と同じ動作をプログラムで再現できないかと考え、今回その方法について学びました。 解決方法:RangeとOffsetを組み合わせる VBAでは、**Range(Selection, Selection.Offset(...