マクロ初心者です。よろしくお願いします。
<質問>
コマンドボタンをクリックしたら、任意のエクセルファイルを指定して開き、その開いたファイル(白紙状態のファイル)にマクロを実行させる方法を探してます。
<作成マクロ>
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に貼り付ける
このマクロを実行させるにはどこを改善すれば良いでしょうか?
ご助言いただけると助かります。
よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>コマンドボタンをクリックしたら
フォームかシートのコマンドボタンのある、このマクロを書く(描いてある)ブックーー>手動で開く、でよいですね。
>(白紙状態のファイル)の
を求めていながら、なぜファイルを探すのか。白紙で保存したファイルがあり、その名前を操作者やプログラマは知っているのか(なにかおかしい)
同じ枠内で新規白紙のブックを作成
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
ーー
または、開いたブックの白紙のシートを探すのか。またはシート挿入するのか。
===
ここらを惑わせる質問文になっていて、回答しづらい。
No.1
- 回答日時:
書き方はさておいて、とりあえずそのまま実行させるには、後半の部分でシートを明示するようにして、
ActiveCell.FormulaR1C1 = "テスト"
ActiveSheet.Range("A1").Select
Selection.Copy
ActiveSheet.Range("B1").Select
ActiveSheet.Paste
みたいにすれば、実行はされます。
ただし、意図しているのとは違う結果になる可能性があります。
>開いたファイル(白紙状態のファイル)の~
ユーザが指定するファイル(存在するファイル)を開いているので、「白紙状態」であるとは限りません。(むしろ書き込んであるほうが当たり前)
>セルA1に「テスト」と書き込み~
ActiveCellを指定しているので、保存時の状態が影響します。
どのセルに書き込まれるかは分かりません。
>セルA1の「テスト」をコピーしセルB1に貼り付ける
マクロ内で書き込んだものなら、わざわざコピーしなくても続けて記入すれば良いというのは置いておいても、↑で指摘したようにA1に「テスト」と書かれるとは限らないので、B1の値は何になるのかはA1の値次第。
書き方については、他の方にお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
vbsからのExcelマクロ呼び出し...
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
docxをmht形式で保存したファイ...
-
Excelファイルを比較し、差分箇...
-
OneDrive必要なものでしょうか
-
VBSでフォルダ内の最新のファイ...
-
CSVファイルの暗号化
-
ファイルが移動してもリンクの...
-
WINDOWS CMDからゴミ箱のファ...
-
batでファイル名を変更したい(...
-
VBAにおいて、ファイルの移...
-
C# リッチテキスト形式のファイ...
-
FTPのgetとputの使いわけ。
-
Googleドライブについて
-
エクセルで移動したシートを復...
-
共有エクセルファイルでのユー...
-
VBA ファイル一覧を取得して全...
-
エクセルの固定範囲にCSVを貼り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iCloud for Windowsをアンイン...
-
vbsからのExcelマクロ呼び出し...
-
CSVファイルの特定行の削除
-
EXCELVBAにて文字列にして「01...
-
OneDrive必要なものでしょうか
-
Excel: ファイル名になぜ、[...
-
ファイルが移動してもリンクの...
-
複数のExcelファイルにある同名...
-
VBAにおいて、ファイルの移...
-
彼女の過去の恋愛に嫉妬してし...
-
Googleドライブについて
-
WINDOWS CMDからゴミ箱のファ...
-
[Unity]シーンファイルの中が消...
-
エクセルの拡張子XLSのファイル...
-
batでファイル名を変更したい(...
-
Excelに貼り付けた画像を圧縮す...
-
エクセルのファイル:「自分」が...
-
5000個のtiffファイルをpdfへ変...
-
VBA ファイル一覧を取得して全...
-
HTMLのリンクで、EXCELをIEでは...
おすすめ情報