Page 95 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼Excelファイルを開かずにデータを読み込むことは? いぬだわん 02/9/9(月) 21:23 ┣Re:Excelファイルを開かずにデータを読み込むことは? ichinose 02/9/9(月) 23:35 ┃ ┗Re:Excelファイルを開かずにデータを読み込むことは? いぬだわん 02/9/10(火) 20:30 ┃ ┗Re:Excelファイルを開かずにデータを読み込むことは? ichinose 02/9/10(火) 21:02 ┃ ┗Re:Excelファイルを開かずにデータを読み込むことは? いぬだわん 02/9/11(水) 20:53 ┃ ┗別の話? ichinose 02/9/11(水) 21:34 ┃ ┗Re:別の話? いぬだわん 02/9/12(木) 12:58 ┗Re:Excelファイルを開かずにデータを読み込むことは? haru 02/9/11(水) 10:20 ┗テキストlファイルを開かずにデータを読み込むことになっているかどうか? ichinose 02/9/11(水) 21:43 ┣Re:テキストlファイルを開かずにデータを読み込むことになっているかどうか? haru 02/9/12(木) 8:34 ┗テキストファイルを開く チョコ 02/9/18(水) 11:15 ┗Re:テキストファイルを開く haru 02/9/18(水) 16:18 ┗Re:テキストファイルを開く チョコ 02/9/18(水) 16:34 ─────────────────────────────────────── ■題名 : Excelファイルを開かずにデータを読み込むことは? ■名前 : いぬだわん ■日付 : 02/9/9(月) 21:23 -------------------------------------------------------------------------
こんばんは。 いつも質問ばかりですみません(汗)。 Excelで作ったファイルを開かずに、 ワークシートを探し出し、 そのワークシートから特定の行をコピーして、 既に開いているワークブックに貼り付けることは マクロでできるのでしょうか? 例えば・・・・ Book1.xlsにワークシートが複数あり、 複数のワークシート「飲み屋」というワークシートを探し、 そのワークシートのB列(全部)だけをコピーして、 既に開いているBook2.xlsの 「飲み屋」というワークシートのD列に貼り付ける というものです。 よく、テキストファイルを開かずにファイルを開く、 というものは本などに載っているのですが・・・ そのあたりはどうなんでしょうか? 教えていただければと思います。 |
▼いぬだわん さん: こんばんは。 >Excelで作ったファイルを開かずに、 >ワークシートを探し出し、 >そのワークシートから特定の行をコピーして、 >既に開いているワークブックに貼り付けることは >マクロでできるのでしょうか? > >例えば・・・・ >Book1.xlsにワークシートが複数あり、 >複数のワークシート「飲み屋」というワークシートを探し、 >そのワークシートのB列(全部)だけをコピーして、 >既に開いているBook2.xlsの >「飲み屋」というワークシートのD列に貼り付ける >というものです。 > >よく、テキストファイルを開かずにファイルを開く、 >というものは本などに載っているのですが・・・ > >そのあたりはどうなんでしょうか? >教えていただければと思います。 こんな感じでしょうか? '=========================================================== Sub test() With ThisWorkbook.Worksheets("飲み屋").Range("d:d") .Formula = "='" & ThisWorkbook.Path & "\[book1.xls]飲み屋'!$b1" ' Book.xlsとBook2.xlsは、同じフォルダにあるという前提です .Value = .Value End With End Sub |
▼ichinose さん: こんばんは。 お返事ありがとうございました。 お返事どおりやってみたところ、 データの入っていない(空白)列のセル(ex.B1?B65536) に数値0が記入されてしまうようです。 データの入っていないものは空白としてコピーして、 既に開いているものに貼り付けることは可能なのでしょうか? よろしくお願い致します。 |
いぬだわん さん: こんばんは。 そうですね。長ったらしくて、恐縮ですが、 '============================================================= Sub test() With ThisWorkbook.Worksheets("飲み屋").Range("d:d") .Formula = "=if('" & ThisWorkbook.Path & "\[book1.xls]飲み屋'!$b1<>"""",'" & ThisWorkbook.Path & "\[book1.xls]飲み屋'!$b1,"""")" ' Book.xlsとBook2.xlsは、同じフォルダにあるという前提です .Value = .Value End With End Sub でどうでしょうか? |
▼ichinose さん: こんばんは。 やってみたらうまくいきました。ありがとうございました。 ところで、 「ファイルを選択」するDialogが出てきますよね。 Dialog左上のTitleを変更することってできるんでしょうか? |
▼いぬだわん さん: こんばんは。 >ところで、 >「ファイルを選択」するDialogが出てきますよね。 >Dialog左上のTitleを変更することってできるんでしょうか? これのことでしょうか? '================================================== Sub test() flnm = Application.GetOpenFilename _ ("", , "印刷レイアウトファイルを選択して下さい") ' ↑で変更します If flnm <> False Then MsgBox flnm End If End Sub |
▼ichinose さん: こんにちは。 それでよかったんですね。 GetOpenFilenameとはまた「ベツモノ」かと思ったんで・・・ 長々といろいろありがとうございました。 |
▼いぬだわん さん、ichinoseさん: こんにちは。横から失礼します。 いま、たまたま、作っているものに >よく、テキストファイルを開かずにファイルを開く、 という技を使いたいと存じます。 教えていただければと思います。 よろしくお願いします。 |
▼haru さん: こんばんは。 > いま、たまたま、作っているものに >よく、テキストファイルを開かずにファイルを開く、 > という技を使いたいと存じます。 > 教えていただければと思います。 > よろしくお願いします。 同じようなパターンで作ってみました。 他にもいろんな方法はあると思いますが・・。 FSOでやりました。 '==================================================== Sub test() With ThisWorkbook.Worksheets(1).Range("d1:d100") .Formula = "=if(iserror(myget_text(""D:\My Documents\TESTエリア\無題.txt"",ROW())),"""",myget_text(""D:\My Documents\TESTエリア\無題.txt"",ROW()))" .Value = .Value End With End Sub '============================================================== Function myget_text(flnm As String, rnum As Long) As String 'input flnm 読み込むテキストファイルの絶対パス ' rnum テキストファイルの読み込む行 Dim fs As Object Dim ts As Object Set fs = CreateObject("Scripting.FileSystemObject") Set ts = fs.OpenTextFile(flnm, 1, 0) For i = 1 To rnum - 1 ts.SkipLine Next myget_text = ts.ReadLine ts.Close End Function でも、Openステーメントで開いて、Line inputで読み込んだ方が速いかもしれませんが・・・。 |
▼ichinose さん: こんにちは。 My Documentsのファイル名を実在するものに変更して、実行する と、 >'============================================================== >Function myget_text(flnm As String, rnum As Long) As String >'input flnm 読み込むテキストファイルの絶対パス >' rnum テキストファイルの読み込む行 > Dim fs As Object > Dim ts As Object > Set fs = CreateObject("Scripting.FileSystemObject") > Set ts = fs.OpenTextFile(flnm, 1, 0) ↑ここで異常終了します。 > For i = 1 To rnum - 1 > ts.SkipLine > Next > myget_text = ts.ReadLine > ts.Close >End Function >でも、Openステーメントで開いて、Line inputで読み込んだ方が速いかもしれませんが・・・。 そうですね。 この方法でうまくいきました。ありがとうございます。 |
こんにちは。 ExcelVBAからテキストファイルを開くという処理を行いたいです。 しかし、検索したところ、「テキストファイルを開かずに・・・」というものが ヒットしました。 きっと「テキストファイルを開く」という処理は簡単なので だれも質問しなかったのかもしれません。 >でも、Openステーメントで開いて、Line inputで読み込んだ方が速いかもしれませんが・・・。 ↑この方法を教えて下さい。 よろしくお願いします! |
▼チョコ さん: こんにちは。回答というわけではありませんが、参考にして下さい。 > >ExcelVBAからテキストファイルを開くという処理を行いたいです。 >>でも、Openステーメントで開いて、Line inputで読み込んだ方が速いかもしれませんが・・・。 >↑この方法を教えて下さい。 ヘルプに以下のサンプルが載っていました。 私はこれを参考にしました。 Dim TextLine Open "TESTFILE" For Input As #1 ' ファイルを開きます。 Do While Not EOF(1) ' ファイルの終端までループを繰り返します。 Line Input #1, TextLine ' 行を変数に読み込みます。 Debug.Print TextLine ' デバッグ ウィンドウに表示します。 Loop Close #1 ' ファイルを閉じます。 |
▼haru さん: ありがとうございます! できました!!できました!! 解決です! ありがとうございました! |