![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルでマクロを使うのにモジュールにコードを書いたら「変数が定義っされていません」となりました。そのあと見たら黄色く色塗られている分があったのですがどう訂正したらいいですか?
黄色に塗られた部分に※を入れています。 文字数が多いので分けています。どうかよろしくお願いします。
Option Explicit
Dim ws As Worksheet '日報シート
Dim sh As Worksheet '人役一覧シート
Dim sh2 As Worksheet 'リースシート
Dim sh3 As Worksheet '相殺・修繕シート
Dim sh4 As Worksheet '打ち合わせ・議事録シート
Dim sh5 As Worksheet '廃棄追加シート
Dim sh6 As Worksheet 'その他集計シート
Dim lsrow As Long '人役一覧の行番号
Dim lsrow2 As Long 'リースの行番号
Dim lsrow3 As Long '相殺・修繕の行番号
Dim lsrow4 As Long '打ち合わせ・議事録の行番号
Dim lsrow5 As Long '廃棄追加の行番号
Dim lsrow6 As Long 'その他集計の行番号
Dim lsrow7 As Long 'その他集計の行番号
Dim lsrow8 As Long 'その他集計の行番号
Dim lsrow9 As Long 'その他集計の行番号
Dim lsrow10 As Long 'その他集計の行番号
Public Sub 日報集計()
Dim day As Long '日数
Dim name As String '日報名
Dim name2 As String '集計済み日報名
Set sh = Worksheets("人役一覧")
Set sh2 = Worksheets("リース")
Set sh3 = Worksheets("相殺・修繕")
Set sh4 = Worksheets("打ち合わせ・議事録")
Set sh5 = Worksheets("廃棄追加")
Set sh6 = Worksheets("その他集計")
Call ClearSheet(sh, 2, "J", "Q", lsrow) 'シートクリア
Call ClearSheet(sh2, 4, "A", "F", lsrow2) 'シートクリア
Call ClearSheet(sh3, 4, "A", "F", lsrow3) 'シートクリア
Call ClearSheet(sh4, 4, "A", "E", lsrow4) 'シートクリア
Call ClearSheet(sh5, 4, "L", "V", lsrow5) 'シートクリア
Call ClearSheet(sh6, 4, "A", "E", lsrow6) 'シートクリア
Call ClearSheet(sh6, 4, "G", "L", lsrow7) 'シートクリア
Call ClearSheet(sh6, 4, "N", "Q", lsrow8) 'シートクリア
Call ClearSheet(sh6, 4, "S", "W", lsrow9) 'シートクリア
Call ClearSheet(sh6, 4, "Y", "Z", lsrow10) 'シートクリア
name2 = ""
'1日~100日まで繰り返す
For day = 1 To 100
name = "日報" & day & "日目"
Set ws = Worksheets(name)
'1日分の日報を集計する
If edit1day() = False Then Exit For
name2 = name
Next
If name2 = "" Then
MsgBox ("集計対象日報なし")
Else
MsgBox (name2 & "迄集計完了")
End If
End Sub
No.2ベストアンサー
- 回答日時:
ご質問の解答には、直接は分かりません。
質問の中からでは、変数の定義されていない部分は、私には見当たりません。
また、ClearSheet サブプロシージャと edit1day ユーザー定義関数はあるという前提です。
「変数が定義されていません」
質問に出されたコードは、全部ではありませんね。
開発途中の段階では、Option Explicit を入れて開発していたら、途中でエディタのエラーが入って、何をしているかわからなくなってきませんか?最初は、コメントブロック(')を 'Option Explicit のようにして、最後に外すのがコツです。
sh~sh6はコレクションか、配列に, lsrow1~10は、配列に入れてしまえばスッキリとします。
ですが、モジュールスコープの変数(プロシージャ外変数)が、それほど必要というのは疑問に感じます。
変数名は、
Dim day As Long '日数 ←関数名です。(例:eDay =each day, myDay =Local day)
Dim name As String '日報名←プロパティ名です。(例:sName = string Name)
できるだけ、同じものは避けた方がよいです。
Call ClearSheet(sh, 2, "J", "Q", lsrow) '
これらも、配列を入れたループで処理できるはずです。
これは、ベテランの使い方ですね。
If edit1day() = False Then Exit For
これだけ書けたら、初歩的な問題には出会わないはずなのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
VBAで複雑な構成の転記
-
エクセル:VBAで月変わりで、自...
-
VBAの指示の内容 昨日こちらで...
-
AQUOS 602SH
-
Excel VBAでシート内全体に非表...
-
【エクセル】 連続印刷する際の...
-
VBAで作成する勤務表の合計を求...
-
別シートから検索値に一致した...
-
ノートパソコン 2in1について i...
-
VBA ブック1からブック2へ行...
-
A列で同じ日付をグループ化し、...
-
エクセル 2つの表比較
-
エクセルVBA 別シートの複数の...
-
EXCELマクロで全シート対...
-
添付ファイルが開けない
-
Vodafone803Tの効果音設定
-
SDカードからminiSDカードへ移す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
エクセルVBA 別シートの複数の...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
シャープのアクオス sh-m25 を...
-
VBA:同じ文字列データの比...
-
エクセル:VBAで月変わりで、自...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで 2種のリストを...
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
Excel VBAでシート内全体に非表...
-
歯抜けの時間を埋めて行の挿入
-
Excelマクロ データが上書きさ...
-
VBA 貼付先範囲(行)がいっぱ...
-
【WORD差し込み印刷】複数レコ...
-
EXCELマクロで全シート対...
-
エクセルVBAでの日付順のデ...
-
エクセル シート保護後コメン...
-
ノートパソコン 2in1について i...
おすすめ情報