- ベストアンサー
エクセルマクロでファイルを指定せずに特定する方法
- エクセルマクロを使用して特定のファイルを指定せずに「2組」と特定する方法について質問があります。全体名簿からコピーしたデータを1組から3組までに分ける必要があるため、特定のファイル名を使用せずに実行したいです。
- 特定のファイル名を使用せずにエクセルマクロを使って「2組」と特定する方法が知りたいです。全体名簿からデータをコピーして各クラスに分けたいのですが、特定のファイル名を使うと他のクラスが使えなくなってしまいます。
- 「2組」と特定する際に、特定のファイル名を使用せずにエクセルマクロを利用する方法を教えてください。全体名簿からデータをコピーして1組から3組までに分類する必要がありますが、2組を特定すると他のクラスが使用できなくなってしまいます。何かいい方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です。 だから、1組、2組、3組で別々にマクロを作成して、 マクロボタンに登録して、順番にマクロ呼び出せばいいのでは? CALL 1組 CALL 2組 CALL 3組 でできると思います。 無理してファイル名を変数にしないでもできると思いますけど・・・。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
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
補足
ご回答ありがとうございます。質問ですがWBA = ActiveWorkBooks.Name '自分のブック名 WBB = "全体名簿.xlsm" '全体のブック名で'自分のブック名と'全体のブック名には何を入れればよろしいのでしょうか。ちなみに試してみましたが,オブジェクトが必要ですとエラーがでてしまいWBA = ActiveWorkBooks.Name '自分のブック名のところが黄色くなってしまいます。なにか対処方法ありますか。
- junichihirobe
- ベストアンサー率20% (5/24)
別に1組と3組のマクロを作成すればよいのでは?
補足
ご回答ありがとうございます。1から3組までできたデータを全体で合体させ,次の年クラス替えした名簿,データを分け次の年のデータを入力してもらいまた,合体するためです。ずっと1から3組まで同じ名簿だったら簡単なんですが・・・・・。
補足
ご回答ありがとうございます。全体名簿から1から3組を呼び出す方法のアイデア参考になりました。そこで,そのCallを使ったマクロの具体例を教えていただければありがたいのですがよろしくお願いします。