- 締切済み
【マクロ】指定したファイルを開いてマクロを実行
マクロ初心者です。よろしくお願いします。 <質問> コマンドボタンをクリックしたら、任意のエクセルファイルを指定して開き、その開いたファイル(白紙状態のファイル)にマクロを実行させる方法を探してます。 <作成マクロ> Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub <マクロ説明> --コマンドボタンをクリックして指定したエクセルファイルを開く-- Private Sub CommandButton1_Click() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If Workbooks(Dir(OpenFileName)).Activate --開いたエクセルファイル(白紙状態)のセルA1に「テスト」を入力した後、コピーしセルB2に貼り付ける-- ActiveCell.FormulaR1C1 = "テスト" Range("A1").Select Selection.Copy Range("B1").Select ActiveSheet.Paste End Sub コマンドボタンをクリック ↓ 任意のエクセルファイルを指定して開く ↓ 開いたファイル(白紙状態のファイル)のセルA1に「テスト」と書き込み セルA1の「テスト」をコピーしセルB1に貼り付ける このマクロを実行させるにはどこを改善すれば良いでしょうか? ご助言いただけると助かります。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>コマンドボタンをクリックしたら フォームかシートのコマンドボタンのある、このマクロを書く(描いてある)ブックーー>手動で開く、でよいですね。 >(白紙状態のファイル)の を求めていながら、なぜファイルを探すのか。白紙で保存したファイルがあり、その名前を操作者やプログラマは知っているのか(なにかおかしい) 同じ枠内で新規白紙のブックを作成 Sub test02() Workbooks.Add End Sub 枠外(別エクセル起動)の場合 Sub test01() Dim appexl Dim bk Set appexl = CreateObject("Excel.application") Set bk = appexl.Workbooks.Add appexl.Visible = True End Sub ーー または、開いたブックの白紙のシートを探すのか。またはシート挿入するのか。 === ここらを惑わせる質問文になっていて、回答しづらい。
- fujillin
- ベストアンサー率61% (1594/2576)
書き方はさておいて、とりあえずそのまま実行させるには、後半の部分でシートを明示するようにして、 ActiveCell.FormulaR1C1 = "テスト" ActiveSheet.Range("A1").Select Selection.Copy ActiveSheet.Range("B1").Select ActiveSheet.Paste みたいにすれば、実行はされます。 ただし、意図しているのとは違う結果になる可能性があります。 >開いたファイル(白紙状態のファイル)の~ ユーザが指定するファイル(存在するファイル)を開いているので、「白紙状態」であるとは限りません。(むしろ書き込んであるほうが当たり前) >セルA1に「テスト」と書き込み~ ActiveCellを指定しているので、保存時の状態が影響します。 どのセルに書き込まれるかは分かりません。 >セルA1の「テスト」をコピーしセルB1に貼り付ける マクロ内で書き込んだものなら、わざわざコピーしなくても続けて記入すれば良いというのは置いておいても、↑で指摘したようにA1に「テスト」と書かれるとは限らないので、B1の値は何になるのかはA1の値次第。 書き方については、他の方にお願いします。