エクセルの固定範囲にCSVを貼り付ける。
作ろうとしているのは、エクセルで作られた勤務表など
貼り付けすべき範囲が固定されているエクセルシートに、
ユーザーが選択したcsvを貼り付けるマクロです。
ユーザーが開いているエクセルファイル(勤務表.xlsとします)
に設置するボタンクリックイベントで、押下しますと
1.CSVファイルをユーザーが選択して開くことができ、
(選択したCSVファイルをsamp1.csvとします)
2.そのsamp1.csvをエクセルで開いた時の固定範囲(B3からE33、など)を、
元のエクセルファイル、勤務表.xlsの固定位置
(Sheet1のC6からH36、など)に貼り付ける。
そんなマクロを作りたいと思っています。
エクセルのマクロに触れ始めて3時間余り、
エクセルマクロ入門系サイトや、
CSV貼り付け等のキーワードで検索し
類似件より引用しながら組んでいるのですが
知識も理解もあやふやなまま(当然かもしれませんが)なかなか作れません。
本来ならば入門書等に書かれている内容を読み、
その上で参考サイトを見て理解する程度になり、
その上で判らなければこちらで質問すべきと理解しているつもりですが、
今日中にと急かされながら3時間経っても理解が進まず半ばパニックに陥っております。
半ば丸投げな質問である事は承知しておりますが、
よろしければご教授、
ないしは私が目的とするマクロの参考になるサイトを
紹介して頂けませんでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
Sub ボタン1_Click()
Dim strFileName As String
' オープンするCSVファイルのフォルダを C:\ として
' ファイルオープンのダイアログを開く
ChDir ("C:\")
strFileName = Application.GetOpenFilename("CSVファイル (*.CSV),*.CSV", 1, "ファイルを選択")
If (strFileName <> "False") Then
' ファイル名が存在しない場合は抜ける
If (Trim(Dir(strFileName)) = "") Then
Call MsgBox("ファイルが見つかりません", vbOKOnly, "確認")
Else
'
' とりあえず、
' CSVの 1行目1列目(A1) から 3行目 4列目(D3)を
' このマクロがあるブックの シート名が "Sheet1" の B3~E5
' にコピーする事にする
'
' まず、コピー先である、このマクロがあるブックの シート名が
' "Sheet1" の B3~E5 の範囲をクリア
ThisWorkbook.Worksheets("Sheet1").Range("B3:E5").ClearContents
' 該当CSVファイルを新規BOOKとして読込んで開く
'
' 範囲 A1~D4 をコピー
' ペースト先はデータシートのB3セルから
Workbooks.Open Filename:=strFileName
ActiveSheet.Range("A1:D3").Copy _
Destination:=ThisWorkbook.Worksheets("Sheet1").Range("B3")
' コピー後、CSVファイルを閉じる
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
End If
End If
End Sub
No.1
- 回答日時:
「前準備」
勤務表シートにコマンドボタン(検索ボタン)を付加する。
(コントロールツールボックスより選択)
検索ボタンクリック時の処理フロー
(1).samp1.csvをVBAマクロで参照する
(2).参照フィールドを該当のセルにデータ転記する
コーディング例
'(1).samp1.csvをVBAマクロで参照する
Dim field1,field2,field3 As String*/
'CSVファイルOPEN
Open "samp1.csv" For Input As #1
Do While Not EOF(1)
'CSVファイル参照
Input #1, field1, field2, field3
'(2).参照フィールドを該当のセルにデータ転記する
ActiveSheet.Cells(1, 1).Value = field1
ActiveSheet.Cells(1, 2).Value = field2
ActiveSheet.Cells(1, 3).Value = field3
Loop
'CSVファイルCLOSE
Close #1
この回答への補足
報告が遅れて済みません。
アドバイス頂けた後、程なく目的を果たすマクロを作成する事ができました。
また、エクセルVBAへの理解を深める事もできました。
本当にどうすればいいか慌てていた時でしたので本当に助かりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) 記録マクロのみでできますか? 7 2022/08/07 20:38
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- PDF PDFの表がエクセルに貼り付けられなくなってしまいました。 5 2022/06/03 09:07
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
Excel:任意の列だけCSV形式で出力したい。
Excel(エクセル)
-
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
エクセルで特定の列だけを抽出してcsvで保存したい
その他(Microsoft Office)
-
-
4
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
5
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
6
【VBA】複数CSVの特定範囲を1つのワークシートにコピー/ペーストするコードの修正
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
docxをmht形式で保存したファイ...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
batでファイル名を変更したい(...
-
Excel: ファイル名になぜ、[...
-
Excelファイルを比較し、差分箇...
-
OneDrive必要なものでしょうか
-
エクセルのファイル:「自分」が...
-
一つのフォルダーに50個のエク...
-
File.delete()にてファイルを削...
-
xlsファイルが開かない。
-
エクセルの拡張子XLSのファイル...
-
Excelに貼り付けた画像を圧縮す...
-
VBSでフォルダ内の最新のファイ...
-
Googleドライブについて
-
彼女の過去の恋愛に嫉妬してし...
-
CSVファイルの暗号化
-
エクセル保存終了で一時ファイ...
-
WINDOWS CMDからゴミ箱のファ...
マンスリーランキングこのカテゴリの人気マンスリー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では...
おすすめ情報