• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロで「今作業をしているファイルを指定す)

エクセルマクロでファイルを指定せずに特定する方法

このQ&Aのポイント
  • エクセルマクロを使用して特定のファイルを指定せずに「2組」と特定する方法について質問があります。全体名簿からコピーしたデータを1組から3組までに分ける必要があるため、特定のファイル名を使用せずに実行したいです。
  • 特定のファイル名を使用せずにエクセルマクロを使って「2組」と特定する方法が知りたいです。全体名簿からデータをコピーして各クラスに分けたいのですが、特定のファイル名を使うと他のクラスが使えなくなってしまいます。
  • 「2組」と特定する際に、特定のファイル名を使用せずにエクセルマクロを利用する方法を教えてください。全体名簿からデータをコピーして1組から3組までに分類する必要がありますが、2組を特定すると他のクラスが使用できなくなってしまいます。何かいい方法はありますか?

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

  • ベストアンサー
回答No.3

ANo.1です。 だから、1組、2組、3組で別々にマクロを作成して、 マクロボタンに登録して、順番にマクロ呼び出せばいいのでは? CALL 1組 CALL 2組 CALL 3組 でできると思います。 無理してファイル名を変数にしないでもできると思いますけど・・・。

tu73kxmu
質問者

補足

ご回答ありがとうございます。全体名簿から1から3組を呼び出す方法のアイデア参考になりました。そこで,そのCallを使ったマクロの具体例を教えていただければありがたいのですがよろしくお願いします。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

Sub 全体名簿へ2組() ' ' 全体名簿へ2組 Macro ' ' Dim WBA,WBB As String WBA = ActiveWorkBooks.Name '自分のブック名 WBB = "全体名簿.xlsm" '全体のブック名 Windows(WBB).Activate Sheets("★生徒名簿").Select If MsgBox("B列で前のクラスの生徒の次のセルを選択していますか?", vbYesNo) = vbYes Then Range("B" & ActiveCell.Row, "n" & Range("B65536").End(xlUp).Row).ClearContents Else: Worksheets("★生徒名簿").Activate Windows(WBA).Activate Sheets("★生徒名簿").Select 開始 = Range("r3").Value 終了 = Range("s3").Value Range("B" & 開始 + 1 & ":n" & 終了 + 1).Select Selection.Copy Windows(WBB).Activate Sheets("★生徒名簿").Select ActiveSheet.Paste End If End Sub

tu73kxmu
質問者

補足

ご回答ありがとうございます。質問ですがWBA = ActiveWorkBooks.Name '自分のブック名 WBB = "全体名簿.xlsm" '全体のブック名で'自分のブック名と'全体のブック名には何を入れればよろしいのでしょうか。ちなみに試してみましたが,オブジェクトが必要ですとエラーがでてしまいWBA = ActiveWorkBooks.Name '自分のブック名のところが黄色くなってしまいます。なにか対処方法ありますか。

回答No.1

別に1組と3組のマクロを作成すればよいのでは?

tu73kxmu
質問者

補足

ご回答ありがとうございます。1から3組までできたデータを全体で合体させ,次の年クラス替えした名簿,データを分け次の年のデータを入力してもらいまた,合体するためです。ずっと1から3組まで同じ名簿だったら簡単なんですが・・・・・。

関連するQ&A