自動

ExcelVBA

【ExcelVBA・マクロ】ワークシートの表示・非表示を切り替える方法|VisibleプロパティとxlSheetVeryHiddenの使い分け【コピペOK】

マクロ処理専用の作業用シートや、参照用のマスターシートを、ユーザーの目に触れないように隠したいことがあります。Excelには「右クリック→再表示」で見えてしまう通常の非表示のほかに、通常の操作では再表示できない「完全な非表示」機能もあります...
ExcelVBA

【ExcelVBA・マクロ】論理演算子(And・Or・Not・Xor)の使い方|複数条件を組み合わせる条件分岐の書き方【コピペOK】

If文で「AかつBの場合」「AまたはBの場合」といった複数条件を判定したいとき、VBAではAnd・Or・Not・Xorといった論理演算子を使います。使い方自体はシンプルですが、VBAには他言語のような「ショートサーキット評価」がないため、知...
ExcelVBA

【ExcelVBA・マクロ】Application.InputBoxの使い方|Type:=8でセル範囲をユーザーに選択させる方法【コピペOK】

ExcelVBAでユーザーにセル範囲を選んでもらいたいとき、VBA標準のInputBox関数では文字列しか受け取れません。実はApplication.InputBoxメソッドを使えば、ユーザーがマウスでクリック&ドラッグしたセル範囲をそのま...
ExcelVBA

【ExcelVBA・マクロ】Worksheet_Changeイベントの使い方|セル変更を検知して自動処理するマクロの作り方【コピペOK】

「特定のセルに入力したら自動で日付を記録したい」「入力値が条件を満たさなければ警告を出したい」——こうした処理は、セルの変更をリアルタイムに検知できるWorksheet_Changeイベントを使うと簡単に実現できます。この記事では、Work...
ExcelVBA

【ExcelVBA・マクロ】NumberFormatプロパティの使い方|日付・通貨・パーセントの表示形式を自在に設定する方法【コピペOK】

VBAでセルに値を入力しても、表示形式が整っていないと「日付のはずが数値のまま」「金額にカンマが付かない」といった見た目の崩れが起きてしまいます。この記事では、セルの表示形式をVBAから自在に設定できるNumberFormatプロパティの使...
ExcelVBA

【ExcelVBA・マクロ】重複しない乱数を生成する方法|抽選・くじ引きシステムに使えるVBAコード【コピペOK】

くじ引きや抽選ツールをVBAで作ろうとすると、単純にRnd関数で乱数を生成するだけでは同じ番号が複数回出てしまい、当選者が重複するといった問題が起こります。この記事では、重複のない乱数を生成する2つの方法(Dictionaryによる重複チェ...
ExcelVBA

【ExcelVBA・マクロ】PtrSafeキーワードの使い方|32bit/64bit対応のAPI宣言とLongPtr型を完全解説【コピペOK】

ExcelVBAでWindows APIを使ったマクロを他のパソコンで実行したら、「コンパイルエラー:ステートメントが正しくありません」と表示されて動かなかった経験はありませんか。多くの場合、原因はOfficeのビット数(32bit版か64...
ExcelVBA

【ExcelVBA・マクロ】ChatGPT(OpenAI API)をVBAから呼び出す方法|WinHTTPでAI回答をセルに自動出力する【コピペOK】

Excelでの集計結果を要約させたり、セルに入力した質問に自動で回答させたりできたら便利だと思ったことはありませんか。実は、ExcelVBAからWinHTTPを使ってOpenAIのChatGPT API(Chat Completions A...
ExcelVBA

【ExcelVBA・マクロ】ToggleButtonコントロールの使い方|ユーザーフォームでON/OFF切り替えボタンを作る方法【コピペOK】

ユーザーフォームでON/OFFの状態を切り替えるボタンを作りたいとき、多くの方はチェックボックスを使います。しかし、押した状態が見た目でもはっきり分かる「押しボタン風」のスイッチを作りたい場合は、ToggleButton(トグルボタン)コン...
ExcelVBA

【ExcelVBA・マクロ】QRコードを自動生成する方法|Google Chart APIでセルの値からQRコード画像を作成【コピペOK】

在庫管理表の商品コードや、名刺のURLなどをQRコード化して印刷したい場面は少なくありません。専用ソフトを使わなくても、VBAから無料のQRコード生成APIを呼び出せば、セルの値をもとにQRコード画像を自動作成し、シート上に貼り付けることが...