過去ログ

                                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列に貼り付ける
というものです。

よく、テキストファイルを開かずにファイルを開く、
というものは本などに載っているのですが・・・

そのあたりはどうなんでしょうか?
教えていただければと思います。
 ───────────────────────────────────────  ■題名 : Re:Excelファイルを開かずにデータを読み込むことは?  ■名前 : ichinose  ■日付 : 02/9/9(月) 23:35  -------------------------------------------------------------------------
   ▼いぬだわん さん:
こんばんは。

>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
 ───────────────────────────────────────  ■題名 : Re:Excelファイルを開かずにデータを読み込むことは?  ■名前 : いぬだわん  ■日付 : 02/9/10(火) 20:30  -------------------------------------------------------------------------
   ▼ichinose さん:
こんばんは。
お返事ありがとうございました。
お返事どおりやってみたところ、
データの入っていない(空白)列のセル(ex.B1?B65536)
に数値0が記入されてしまうようです。
データの入っていないものは空白としてコピーして、
既に開いているものに貼り付けることは可能なのでしょうか?
よろしくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:Excelファイルを開かずにデータを読み込むことは?  ■名前 : ichinose  ■日付 : 02/9/10(火) 21:02  -------------------------------------------------------------------------
   いぬだわん さん:
こんばんは。
そうですね。長ったらしくて、恐縮ですが、
'=============================================================
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

でどうでしょうか?
 ───────────────────────────────────────  ■題名 : Re:Excelファイルを開かずにデータを読み込むことは?  ■名前 : いぬだわん  ■日付 : 02/9/11(水) 20:53  -------------------------------------------------------------------------
   ▼ichinose さん:
こんばんは。
やってみたらうまくいきました。ありがとうございました。
ところで、
「ファイルを選択」するDialogが出てきますよね。
Dialog左上のTitleを変更することってできるんでしょうか?
 ───────────────────────────────────────  ■題名 : 別の話?  ■名前 : ichinose  ■日付 : 02/9/11(水) 21:34  -------------------------------------------------------------------------
   ▼いぬだわん さん:
こんばんは。
>ところで、
>「ファイルを選択」するDialogが出てきますよね。
>Dialog左上のTitleを変更することってできるんでしょうか?
これのことでしょうか?
'==================================================
Sub test()
  flnm = Application.GetOpenFilename _
    ("", , "印刷レイアウトファイルを選択して下さい")
'         ↑で変更します
  If flnm <> False Then
    MsgBox flnm
    End If
End Sub
 ───────────────────────────────────────  ■題名 : Re:別の話?  ■名前 : いぬだわん  ■日付 : 02/9/12(木) 12:58  -------------------------------------------------------------------------
   ▼ichinose さん:
こんにちは。
それでよかったんですね。
GetOpenFilenameとはまた「ベツモノ」かと思ったんで・・・

長々といろいろありがとうございました。
 ───────────────────────────────────────  ■題名 : Re:Excelファイルを開かずにデータを読み込むことは?  ■名前 : haru  ■日付 : 02/9/11(水) 10:20  -------------------------------------------------------------------------
   ▼いぬだわん さん、ichinoseさん:
こんにちは。横から失礼します。

 いま、たまたま、作っているものに
>よく、テキストファイルを開かずにファイルを開く、
 という技を使いたいと存じます。
 教えていただければと思います。
 よろしくお願いします。
 ───────────────────────────────────────  ■題名 : テキストlファイルを開かずにデータを読み込むことになっているかどうか?  ■名前 : ichinose  ■日付 : 02/9/11(水) 21:43  -------------------------------------------------------------------------
   ▼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で読み込んだ方が速いかもしれませんが・・・。
 ───────────────────────────────────────  ■題名 : Re:テキストlファイルを開かずにデータを読み込むことになっているかどうか?  ■名前 : haru  ■日付 : 02/9/12(木) 8:34  -------------------------------------------------------------------------
   ▼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で読み込んだ方が速いかもしれませんが・・・。
 そうですね。
 この方法でうまくいきました。ありがとうございます。
 ───────────────────────────────────────  ■題名 : テキストファイルを開く  ■名前 : チョコ  ■日付 : 02/9/18(水) 11:15  -------------------------------------------------------------------------
   こんにちは。

ExcelVBAからテキストファイルを開くという処理を行いたいです。
しかし、検索したところ、「テキストファイルを開かずに・・・」というものが
ヒットしました。
きっと「テキストファイルを開く」という処理は簡単なので
だれも質問しなかったのかもしれません。

>でも、Openステーメントで開いて、Line inputで読み込んだ方が速いかもしれませんが・・・。

↑この方法を教えて下さい。
よろしくお願いします!
 ───────────────────────────────────────  ■題名 : Re:テキストファイルを開く  ■名前 : haru  ■日付 : 02/9/18(水) 16:18  -------------------------------------------------------------------------
   ▼チョコ さん:
こんにちは。回答というわけではありませんが、参考にして下さい。
>
>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                            ' ファイルを閉じます。
 ───────────────────────────────────────  ■題名 : Re:テキストファイルを開く  ■名前 : チョコ  ■日付 : 02/9/18(水) 16:34  -------------------------------------------------------------------------
   ▼haru さん:
ありがとうございます!
できました!!できました!!
解決です!
ありがとうございました!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 95