エクセルのVBAでシートを追加更新していきたいのですがうまくいきません…。
すみません、どなたかぜひ教えてください。
エクセルはそこそこ使えますが、マクロ関係はまったくの初心者です。
excel2003で作業しています。
やりたいのは、実行することによって
(1)同一ブックの中に同じ形式のシートを追加する。
(シート名は「0」「1」「2」…というように、ただの数字にしています)
(2)セル「K4」の数式
「=I4+'( 1 )'!K4」を
「=I4+'( 2 )'!K4」
というように、どのシートでも、直前のシートのセル「K4」の数値と更新したシートのセル「I4」の数値の合計を「K4」に表示する。
(以下、「I5」「K5」、「I6」「K6」…も同様にしていきます)
ようにしたいのです。
(2)のために、
Range("k4").Value = "=I4+'(" & Range("j1").Value - 1 & ")'!K4"
(「J1」には、「新しいシート名(数字)と同じ数字」が入るようにしてあります)
としましたが、
「 =I4+'(1)'!K4 」としたいのに、
「 =I4+'[1](1)'!K4 」
と表示され、うまくいきません。
また、実行するたびに、
「値の更新」ということで、ファイルを指定するよう指示が出ます。キャンセルすると「#REF!」になります。
何が原因なのか、どうすればいいのかがさっぱり分かりません。
身の程知らずなレベルに挑戦しているのかもしれませんが、どなたか助けていただければ幸いです。
よろしくお願いします!
(よく分かっていないため、質問の仕方が適当でなかったらすみません…)
No.1
- 回答日時:
こんばんは。
これでどうですか?
Sub test()
Range("k4").Formula = "=I4+" & Range("j1").Value - 1 & "!K4"
End Sub
>(シート名は「0」「1」「2」…というように、ただの数字にしています)
ただの数字では、別の事例で不具合が出た経験があります。
具体的には忘れました。1を1月にして解決した記憶があります。
今回もs0,s1,s2のようにしたほうがいいかも。
さっそく助けてくださってありがとうございます!
上述の通り変えてみても変わらなかったのですが、
ためしにファイル名に( )をつけたところ、きちんと更新してくれました。
ただの数字ってダメなんですね…。
勉強になりました。本当にありがとうございました!
No.2ベストアンサー
- 回答日時:
#コメント
シートを追加するブックとマクロが載せてあるブックは別なのか同じなのかが不明です。
このため「どのブックに」一連の操作をしたらいいのか,マクロの中で記述できません。
#マクロを検討する前提
「前のシート」が存在しないシート名ゼロを作成するため,一連の操作を実施することはできない
基点となるシート名ゼロは,一番最初にマクロを実行するより前に既に作成済みである
なお,全角文字のゼロと半角文字のゼロを間違えてはいけない
サンプルマクロ:
sub macro1()
dim n as long
'シートを作成する
worksheets.add after:=worksheets(worksheets.count)
on error goto errhandle
activesheet.name = n
on error goto 0
'数式を入れる
range("K4:K6").formula = "=I4+'" & n - 1 & "'!K4"
exit sub
errhandle:
n = n + 1
resume
end sub
>何が原因なのか、どうすればいいのかがさっぱり分かりません
J1に入れてあった式が間違ってると考えるのが妥当です。
存在しないシート(間違ったシート名)を参照しろと書かれた数式を投入しようとすると,そんなシートはこのブックに見あたらないけどどこにありますかと「値の更新」が現れ,そして無視ルと有りませんという意味の#REFになります。
ありがとうございました!!
丁寧に教えていただけて、本当に本当にうれしいです。
とても勉強になりました。
ご指摘の通り、そもそものシート名が間違っていたようです。
ただの数字だったファイル名に( )をつけたところ、きちんと更新してくれました。
(「うっかり」も知識が乏しいと巨大な落とし穴…)
本当に助かりました。
またの機会がありましたら、ぜひ次も教えていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Excel(エクセル) 別のシートの最終行の値を参照するには 5 2022/12/15 13:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
ExcelのSheetに作られたMacro1...
-
VBAで条件によってシート見出し...
-
エクセルでシートの並び替えで...
-
EXCELでワークシートを開いたら...
-
【 Excel】シートの見出しに自...
-
エクセル 行の表示非表示のマ...
-
Excelで,特定のシートを開いた...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
Excelのマクロの呼び出し元を知...
-
マクロ 各シートの決められた位...
-
【Excel VBA】シート見出しの色...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
エクセルのマクロについて教え...
-
エクセルのチェックボックス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
シートを保護した時でも並べ替...
-
EXCELのエラー
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELの起動時に常に同じ...
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
Excelのマクロの呼び出し元を知...
-
Excelで,特定のシートを開いた...
おすすめ情報