Grilled Cheese

ExploreLog inSign up
Terms of UsePrivacy PolicyCommunity StandardsHelpGet the app

Grilled Cheese is a product of Village Compute

Version devBuilt at: 2026-10-20 22:39:34 EDT

PhotosVideosAllPeople
LatestRanked
Load more
@legacy-it-tan.bsky.socialOct 20, 2026, 11:38 PM

#ExcelVBAマクロを使いこなす 53

イベントが発生したシートの名前
https://www.relief.jp/docs/018...

' シート内容変更時
Private Sub Worksheet_Change(ByVal Target As Range)

' Targetが存在するシートを取得
sheet_name = Target.Parent.Name
Set target_sheet = Sheets(sheet_name)

@legacy-it-tan.bsky.socialOct 20, 2026, 9:38 AM

#ExcelVBAマクロを使いこなす 52

「実行時エラー'1004'
Intersectメソッドは失敗しました。
'_Global'オブジェクトのエラー」
https://okwave.jp/qa/q2989438....

Intersect( Target, Range(~) )で
異なるシートのセルを比べるとエラーになる。
Targetはイベント発生シート
RangeはActiveSheet

@legacy-it-tan.bsky.socialOct 19, 2026, 9:09 PM

#ExcelVBAマクロを使いこなす 51

Worksheet_Changeで
セルの更新イベントを拾う場合,
Targetと自分の観察範囲を
IntersectしてからFor Eachにかける。
https://www.moug.net/tech/exvb...

Set rng = Intersect(Target, Range("C1:C10"))
If Not (rng Is Nothing) Then
For Each r In rng …

@legacy-it-tan.bsky.socialOct 19, 2026, 11:08 AM

#ExcelVBAマクロを使いこなす 50

・行単位
・列単位
・矩形範囲
など,複数のセルが手動で更新された場合
Worksheet_Change内でそれを検知する:

https://jizilog.com/vba-change...

Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(Target.Address, ":") <> 0 Then Exit Sub

@i-t-tan.bsky.socialOct 19, 2026, 5:02 AM

#このアカウントのハッシュタグ一覧 2

表計算ソフト:
#Excel関数を使いこなす
#ExcelVBAマクロを使いこなす
#GAS・GoogleAppsScriptの勉強

他のオフィスソフト:
#Wordの使い方Tips
#メールとメーラーの知識

マルチメディア系:
#AviUtlで動画編集する方法

@legacy-it-tan.bsky.socialOct 19, 2026, 12:38 AM

#ExcelVBAマクロを使いこなす 49

' セル値更新時
Private Sub Worksheet_Change(ByVal Target As Range)
For Each r In Target
x = r.Column
y = r.Row
MsgBox "変更セルは" & y & "行" & x & "列目"
Next

↑
「行を挿入」すると
行内の全セルが渡され
ループが死ぬ…。

@legacy-it-tan.bsky.socialOct 18, 2026, 4:08 PM

#ExcelVBAマクロを使いこなす 48

Private Sub Worksheet_Change(ByVal Target As Range)

For Each r In Target
x = r.Column
y = r.Row
MsgBox "変更セルは" & y & "行" & x & "列目"
Next

複数セル範囲が選択・更新された場合,
For Eachで1セルずつ処理できる。

@legacy-it-tan.bsky.socialOct 18, 2026, 7:08 AM

#ExcelVBAマクロを使いこなす 47

Private Sub Worksheet_Change(ByVal Target As Range)
x = Target.Column
y = Target.Row
…

・Ctrlキーを押しながら
複数セルを選択し一括更新した場合
最初に選択したセルの番地が返る。

・矩形セル領域を選択した場合
左上のセル番地が返る。

@legacy-it-tan.bsky.socialOct 17, 2026, 10:09 PM

#ExcelVBAマクロを使いこなす 46

セル値の更新イベントを拾う
(1セルのみ更新の場合)
https://ateitexe.com/find-chan...

' シート内容変更時
Private Sub Worksheet_Change(ByVal Target As Range)
x = Target.Column
y = Target.Row
MsgBox "変更セルは" & y & "行" & x & "列目"
End Sub

@legacy-it-tan.bsky.socialOct 17, 2026, 1:38 PM

#ExcelVBAマクロを使いこなす 45

自動処理:
ThisWorkbookモジュール内に
下記の関数を書く。

' ブックを開いた時に自動的に実行
Private Sub Workbook_Open()

' 現在日時を書き込み
Sheets("Sheet1").Cells(1, 1).Value = Format(Now, "yyyy/mm/dd(aaa)hh:mm:ss")

End Sub

@legacy-it-tan.bsky.socialOct 17, 2026, 5:39 AM

#ExcelVBAマクロを使いこなす 44

モジュールの先頭・宣言セクションに
モジュール変数を定義し
宣言と同時に値を初期化するには…

・そのモジュール内だけで使う場合はPrivate
・他のモジュールでも使うならPublic
・値が不変の定数ならConst

Private Const a = 1
Public Const b = "hoge"

@legacy-it-tan.bsky.socialOct 16, 2026, 8:39 PM

#ExcelVBAマクロを使いこなす 43

・SubやFunctionの
内部で宣言された変数を
「プロシージャ変数」(ローカル変数)という.

・複数のプロシージャ間で
共通の変数を使うには,
モジュールの先頭
(全ルーチンの前。宣言セクション)に
「モジュール変数」を宣言する.

https://www.moug.net/tech/exvb...

@legacy-it-tan.bsky.socialOct 16, 2026, 12:38 PM

#ExcelVBAマクロを使いこなす 42

VBAコードの置き場は3種類
https://excel-ubara.com/excelv...

(1)標準モジュール:
ここに書いたプロシージャは
(Private指定しなければ)
全シートから呼び出し可能

(2)ブックモジュール:
ブックイベントなど書く

(3)シートモジュール:
シートイベントなど書く

@legacy-it-tan.bsky.socialOct 16, 2026, 5:08 AM

#ExcelVBAマクロを使いこなす 41

頻出パターン8:
DB接続

Excel VBAから RDBMS を操作する際,
ADODB. Connection を使わない手もある。

・VBAでExcelシート上の記載情報を読み取り
CSVファイルに書き出し。

・その直後にVBAから,Shell関数で
CUIツールからDB操作。

https://language-and-engineeri...

@legacy-it-tan.bsky.socialOct 15, 2026, 6:08 PM

#ExcelVBAマクロを使いこなす 40

頻出パターン8:
DB接続

Set conn = CreateObject("ADODB. Connection")
conn.Open 接続文字列

' SQL実行
Set rs = CreateObject("ADODB.RecordSet")
rs.Open strSQL, conn
' SELECT結果がセットされる
https://language-and-engineeri...

@legacy-it-tan.bsky.socialOct 15, 2026, 9:08 AM

#ExcelVBAマクロを使いこなす 39

頻出パターン8:
DB接続
https://language-and-engineeri...

Excelのシート上に
一覧表形式で記載されているデータを,
外部データベースと連携して処理できる。

・RDBMSからExcelへデータ読み込み
・ExcelからRDBMSへデータ書き込み

@legacy-it-tan.bsky.socialOct 14, 2026, 10:09 PM

#ExcelVBAマクロを使いこなす 38

ファイル名の拡張子に
関連付けられたプログラムで
ファイルを開くには…
https://www.moug.net/tech/exvb...

cmd_str = """" & txt_file_path & """"
Set wsh = CreateObject("Wscript.Shell")
wsh.Run cmd_str, 3

※.Shell関数ではダメ

@legacy-it-tan.bsky.socialOct 14, 2026, 12:09 PM

#ExcelVBAマクロを使いこなす 37

頻出パターン7:
外部コマンド呼び出し

・Shell 関数で,
Windowsコマンドプロンプトと同じように
コマンドを実行できる。

・デフォルトのカレントディレクトリは
マイドキュメント。

・ChDir / ChDriveは,UNCパスの設定は不可。

@legacy-it-tan.bsky.socialOct 14, 2026, 5:10 AM

#ExcelVBAマクロを使いこなす 36

頻出パターン7:
外部コマンド呼び出し

Excelのシート上から
外部コマンドを呼び出すことができれば
【実行可能ドキュメント】になる。

「仕様書を書けば,その仕様書自体が動く」。

例
テスト仕様書を書いた
→その書面上から,書いてあるテストを直接実行可

@legacy-it-tan.bsky.socialOct 13, 2026, 8:39 PM

#ExcelVBAマクロを使いこなす 35

頻出パターン7:
外部コマンド呼び出し
https://language-and-engineeri...

' カレントディレクトリを設定
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path

' コマンド実行
output_path = ThisWorkbook.Path & "\a.txt"
Shell "cmd.exe /c dir > " & output_path