VBA– tag –
-
【VBA】Excelでセーブ履歴を自動記録する方法|誰がいつ保存したかをログに残す
Excelファイルを共有していると、「誰がいつ保存したのか分からない」「記入ミスがあっても原因が特定できない」といった問題が起こることがあります。 こうしたトラブルを防ぐには、保存履歴(セーブ履歴)を自動的に記録する仕組みを導入するのがおすす... -
【VBA入門】Excelでセルの文字色(フォントカラー)を変更する方法|RGB関数で色指定
ExcelのVBAを使って「特定のセルの文字色を変更したい」と思ったことはありませんか? 例えば、条件に応じて文字色を赤や青に変えれば、視認性が高まり、可視化にも役立ちます。 今回は、VBAを使ってセルのフォントカラーを変更する方法をご紹介いたします... -
【VBA入門】指定した文字が含まれているかを確認する方法|InStr関数の使い方
Excel VBAを使って、「文字列の中に特定の語句が含まれているかを調べたい」という場面はよくあります。 例えば、セルの内容に「○○」という言葉が含まれていたら処理を実行したい、といった場合です。 今回は、そうした条件分岐に役立つ InStr() 関数の基... -
【VBA入門】Excelで警告音を鳴らす方法|Beep関数で音による通知を追加しよう
ExcelのVBAで処理を自動化していると、メッセージだけでは気づきにくい警告や判定エラーなどに出会うことがあります。 そんなとき、音で注意喚起できたらより便利だと思いませんか? 今回は、**Excel VBAで簡単に音を鳴らす方法として「Beep関数」**をご紹... -
【VBA】Excelファイルを閉じるときにセルの値をチェックする方法|Workbook_BeforeCloseとInStrの活用
Excelで業務用のファイルを扱っているときに、 「このファイル、閉じる前にデータをちゃんと確認したい…」 というケースは少なくありません。 特に、特定のセルの内容に間違いがないかをチェックしたいとき、閉じる瞬間に確認メッセージを出せたら安心です... -
【VBA入門】セルが空白かどうかを判定する方法|If文で入力チェックを実装
ExcelでVBAを使っていると、 「セルが空白のまま実行されると困る…」「必須項目なのに入力されていない…」 といった場面に遭遇することがあります。 今回は、VBAでセルが空白かどうかを判定して、空白の場合に警告を出す方法をご紹介いたします。 基本構文... -
【VBA】選択された行に自動で色を付ける方法|行の視認性を高めるExcelマクロ
経緯 Excelで作業をしていると、列数が多すぎてどの行を見ていたのか分からなくなることがあります。特に横スクロールや縦に長い表では、選択しているセルが含まれる行を見失いがちです。 そこで、現在選択中の行に自動で色を付けるVBAコードを使えば、視... -
【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時を過ぎていたらデータの書き込みをさせないようにしたい」という要件があり、その方法を調...