はじめまして。VBAまだまだ初心者です。タイトルのとおり別のエクセル(LAN接続された別PC上にある「取引先.xls」の「未確定」シート)から、3列分のデータをコピーし、別ブック(「取引先2.xls」)に「確定」シートを作成し、作成したシートの1列目から貼り付けたいのです。
で、これを「取引先.xls」は開かずに実行させたいのですが、どのように書けばよいのかわかりません。
いまのところ
1.「取引先.xls」を開く方法として、ダイアログBOXで「取引先.xls」を選んでもらって、開く。
2.「未確定」シートを選択し、Range("A6:C40")のデータをコピー。
3.「取引先2.xls」に「確定シート」を作成し、そこに貼付け。
4.「取引先.xls」を閉じる。
という風な流れでやっております。
何か良い方法がありましたら教えて下さい。エクセル2000を使用しています。
No.1ベストアンサー
- 回答日時:
> これを「取引先.xls」は開かずに実行させたいのですが、どのように書けばよいのかわかりません。
それ以外の部分はできているのですね。
では、開かずにデータを取得する方法を知らないので、開いたところを見せずに実行する方法
'1.ダイアログBOXで「取引先.xls」を選ぶコード
Application.ScreenUpdating = False '画面の更新を止める
'選んだファイルを開くコード
'2.「未確定」シートを選択し、Range("A6:C40")のデータをコピー。のコード
'3.「取引先2.xls」に「確定シート」を作成し、そこに貼付け。のコード
Workbooks("取引先.xls").Close (False)
Application.ScreenUpdating = True '画面の更新を再開
この回答への補足
merlionXXさんへ。
(補足じゃないですが、書く所が分からなかったのでココに書かせてもらいました ^^;)
パスから「Right関数」でファイル名のみ取得したところ、
Workbooks("取引先.xls").Close (False)
も使えました。
ので、当面この方法を使わせて頂きます。ありがとうございました。
merlionXXさん。早速ありがとうございます。
説明不足があったので補足させてください。
ダイアログBOXで選択したbookを"GetOpenFilename"を使ってパスの形(C:\新しいフォルダ\取引先.xls)で持ってきてますので、
> 「Workbooks("取引先.xls").Close」
が使えないのです。
画面の更新を止める方法については、勉強になりました。
よろしくお願いします。
No.2
- 回答日時:
#1です。
うまく行ってよかったですね。蛇足ですが
> パスから「Right関数」でファイル名のみ取得したところ、
ご承知のとおりGetOpenFilenameメソッドの返り値は「C:\My Documents\Book1.xls」のようにパス名を含んだファイル名です。
これは、そのままファイルを開くときなどに便利なのですが、パスを除いた純粋なファイル名を取り出すにはDir関数を使えばいいんです。
Dir関数は引数に指定したファイルが存在すると、そのファイル名だけを返します。Right関数などでめんどうなことをしなくともいいんですよ。
Sub Sample()
Dim OpenFileName As Variant
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
If OpenFileName <> False Then
MsgBox "選択したファイルは " & Dir(OpenFileName) & " です", vbInformation, " ( ̄ー ̄)v"
End If
End Sub
おぉ~!Dir関数!なるほどです。(・・・ひょっとして基本ですか?)
これは他にも使いまわしが出来ますね(^^
おかげでコードがすっきりしました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【VBA】全シートの計算式を全て...
-
VBS Bookを閉じるコード
-
ExcelのVBAです。フォルダ内の...
-
【マクロ】違うフォルダにある...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロを使ってメー...
-
エクセルのマクロについて教え...
-
複数のエクセルブックをひとつ...
-
【ExcelVBA】zip圧縮されたCSV...
-
Dir関数で複数ブックへ行いたい...
-
Excelのマクロコードについて教...
-
VBAで複数のブックを開かずに処...
-
マクロで最終行を取得したい
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報