• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで、既に作成してある月別Sheetを呼び出すマクロを作りたい)

Excelで月別Sheetを呼び出すマクロの作成方法

このQ&Aのポイント
  • Excelで月別のSheetを呼び出すマクロを作成する方法について教えてください。
  • 月別の成績表を作成する際に、各月の転記用のSheetをマクロでコピーしたいです。
  • 月ごとに異なるSheetを自動的に選択し、コピーするマクロを作成したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

そのまま実行するなら、以下のようにコードを修正してください(&と文字列などの間にスペースが必要)。 Sub Macro1() Dim Tuki As Integer Dim Tuki2 As Integer Tuki = Range("a1").Value If Tuki < 3 Then Tuki2 = Range("a1").Value + 10 Else Tuki2 = Range("a1").Value - 2 End If Sheets(Tuki2 & "月転記").Select Cells.Select Selection.Copy Sheets(Tuki & "月成績").Select

kyoutanuki
質問者

お礼

非常にスピーディーで、かつ親切丁寧に教えて頂きありがとうございました。 感謝しております、これを機会にいろいろマクロの勉強をしたいと思います。 またお世話になるかもわかりませんが、よろしくお願いします。 本当にありがとうございました。

その他の回答 (3)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

' テスト作成 ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+a Dim Tuki1 As Integer Dim Tuki2 As Integer Tuki1 = Range("A1").Value Select Case Tuki1 Case 1, 2 Tuki2 = Tuki1 + 10 Case Else Tuki2 = Tuki1 - 2 End Select Sheets(Tuki2 & "月転記").Select Cells.Copy Sheets(Tuki1 & "月成績").Select Cells.Select ActiveSheet.Paste Range("E5:F5").Select Range(Selection, Selection.End(xlDown)).Select ではどうでしょうか。

kyoutanuki
質問者

お礼

入力したところ、順調に作動しました。 いろいろな操作方法があるのですね、益々興味が出てきました。 マクロについてもっともっと勉強します。 ありがとうございました。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

テスト作成を動かしてエラーになった時にデバッグすると Sheets(Range("A1").Value&"月成績").Selectのところで エラーになっているのでは? Dim Tuki As Integer SHEET_NAME = ActiveSheet.Name これを追加する If Range("a1").Value < 3 Then Sheets(Range("A1").Value&"月成績").Selectを Sheets(SHEET_NAME).Select にすれば うまく動くのではないかと思います。

kyoutanuki
質問者

お礼

初心者に早速教えて頂きありがとうございました。  MackyNo1 様のご指導でうまく動くようになりましたので解決しました。

kyoutanuki
質問者

補足

本当にすみません。 上記に変更するも、 Sheets(Tuki&"月転記").Select  の部分が赤色になり、   この部分で、エラーとなってしまいます。 どうぞよろしくお願いします。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

マクロを実行するシートのA1セルに「7」のような数字を入力する場合、現在のコードの前に以下のようなコードを追加し、シート名を参照する部分を以下のように変更してみて下さい。 Dim Tuki As Integer If Range("a1").Value < 3 Then Tuki = Range("a1").Value + 10 Else Tuki = Range("a1").Value - 2 End If 変更するコード Sheets("5月転記").Select → Sheets(Tuki&"月転記").Select Sheets("7月成績").Select → Sheets(Range("A1").Value&"月成績").Select

kyoutanuki
質問者

お礼

すごい、 早速にありがとうございます。 ど素人ですみません。 下記のように既存マクロに追加記入をしてみましたが、 コンパイルエラー  構文エラー  と表示されうまく動きません。 どうぞよろしくお教え頂ければありがたいです。 Sub Macro1() ' テスト作成 ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+a Dim Tuki As Integer If Range("a1").Value < 3 Then Tuki = Range("a1").Value + 10 Else Tuki = Range("a1").Value - 2 End If Sheets(Tuki&"月転記").Select Cells.Select Selection.Copy Sheets(Range("A1").Value&"月成績").Select Cells.Select ActiveSheet.Paste Range("E5:F5").Select Range(Selection, Selection.End(xlDown)).Select すみません、  お礼入力のこの欄で再質問をしても良いのかもわかりません。 初心者ですみません。

関連するQ&A