いろんなサイトの情報を見ながら作っていたのですがどうもうまくいかないのでアドバイスなど頂きたいです。
書き方もおかしいと思うのでこう記述するべきとかあったら教えてほしいです。
<やりたいこと>
ダイアログボックスより取り込みたいcsvを選択
選択したファイルのパスを一度テキストボックスに書きだす。
新規シートを作成してシート名を変更して
先ほどテキストボックスに書きだした情報を元に
CSVファイルのデータを新規作成したシートにコピーを張り付ける
呼び出したCSVファイルを閉じる
といったようにしたいのです。
できたら欲しい情報の入った列だけとりだしたかったのですが・・・。
現状記述してあるのは下記になります。
これだととりあえずコピーできてるみたいですが、呼び出したCSVファイルが閉じないのです。
Private Sub CommandButton1_Click()
Dim OpenFileName As Variant
OpenFileName = Application.GetOpenFilename("CSVファイル(*.csv),*.csv")
TextBox1.Value = OpenFileName
End Sub
Private Sub CommandButton2_Click()
Worksheets.Add After:=Worksheets("Sheet1"), Count:=1
ActiveSheet.Name = "テスト"
Workbooks.Open Filename:=TextBox1
ActiveSheet.Cells.Copy Destination:=ThisWorkbook.Sheets("テスト").Range("A1")
Workbooks(TextBox1).Close
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> Workbooks(TextBox1).Close
テキストボックスには CSV ファイルのフルパスが入っているのでは?
Workbooks(hoge)
hoge の部分に入れるのは、CSV ファイルのフルパスではなく、ブック名です。
ブック名は、そいつを開いたときに Excel のウィンドウ上部にあるタイトルバーに表示されている文字列です。(ウィンドウ メニューの中にも表示されます)
ただし、Windows のオプションで "登録された拡張子を表示しない" になっているかどうかでファイル名の表示のされ方が変わってくるので、ワークブック オブジェクトを使って書いてみました。
Private Sub CommandButton2_Click()
Dim newSheet As Worksheet
Set newSheet = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets("Sheet1"), Count:=1)
newSheet.Name = "テスト"
Dim csvBook As Workbook
Set csvBook = Workbooks.Open(Filename:=TextBox1.Value)
csvBook.ActiveSheet.Cells.Copy Destination:=newSheet.Range("A1")
csvBook.Close
End Sub
ありがとうございます。
できました!
やはりブック名だけじゃないといけなかったんですね。
ファイル名が毎回違うのでどうすればいいのか分からずフルパス
いれてしまいました・・・。
勉強になります 本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.NETアプリを作ったときの .man...
-
binファイルを解凍したいの...
-
#include <Windows.h>というヘ...
-
自分で作成した重要ファイルを...
-
CSSを1ページに1枚作るのって変...
-
ファイルが開かれているかどう...
-
アクセス 壊れた? 「ファイ...
-
Word VBA MSGBOX 内で降順表示
-
監視ツールを入れさせられまし...
-
実行ファイル(.exeファイル)...
-
参照するファイルをワイルドカ...
-
「ブルーファイル」と「グリー...
-
Batファイルをバイナリ形式にす...
-
ファイル名にドットを使ったフ...
-
Latexで図番号だけを「図1.1」...
-
VBAのバイナリ出力について
-
VBSが起動しない
-
csvファイルについて教えて下さ...
-
warファイルをEclipseでプロジ...
-
添付ファイル-ms dos-の開き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneでXMLファイルを開くには...
-
公文書のxmlファイルの開き方が...
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
jarファイル
-
Seasar2のdiconファイルの読み方
-
Word VBA MSGBOX 内で降順表示
-
監視ツールを入れさせられまし...
-
CSSを1ページに1枚作るのって変...
-
コマンドプロンプトで、指定し...
-
ファイルが開かれているかどう...
-
exeファイルをデータ転送サービ...
-
パイソンでpy ファイルと p...
-
exeファイルの中身を見る方法は...
-
Latexで図番号だけを「図1.1」...
-
参照するファイルをワイルドカ...
-
バッチ処理で追記コピーしたい
おすすめ情報