Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


65597 / 76734 ←次へ | 前へ→

【15710】Re:VB6からExcleの値を使いたい
回答  ちん  - 04/7/3(土) 17:07 -

引用なし
パスワード
   こんばんは、ちんといいます。
Private Sub Command1_Click()
  Dim I_xlsBOOK        As Excel.Workbook  'EXCELのブック
  Dim I_xlsSHEET        As Sheets      'EXCELのシート
  
  Set I_xlsBOOK = GetObject("c:\取引先マスタ.xls")

  Set I_xlsSHEET = I_xlsBOOK.Worksheets
  I_xlsBOOK.Application.Visible = True 'Excelを表示する

  I_xlsBOOK.Parent.Windows(1).Visible = True
  DoEvents
  
  
  MsgBox I_xlsSHEET.Application.Cells(1, 2).Value
  MsgBox I_xlsSHEET.Application.Cells(2, 2).Value
  For i1 = 1 To 1000: DoEvents: Next i1

  'EXCELのマクロ(Macro1)を実行する。時は、下記の命令一行追記
  I_xlsBOOK.Application.Run "'c:\取引先マスタ.xls'!Macro1"
  
  DoEvents
  I_xlsBOOK.Application.Quit
  DoEvents
  
  I_xlsBOOK.Application.Quit
  For i1 = 1 To 1000: DoEvents: Next i1
  DoEvents
    
  'EXCELのクローズ
  Set I_xlsBOOK = Nothing
  Set I_xlsSHEET = Nothing
  Sleep (200)
  DoEvents
 
  Exit Sub
  
End Sub

※VB6.0の参照設定でMicrosoft Excel10.0 Objectをチェックして下さい。
IROCさんが言うように、テキストファイルで取得するのと、
Excel表から直接取得するのでは、断然にテキストファイルでの取得が早いですよ。

参考までに、私の場合は、
・Excel表から大量データを取得する場合、
 (1)VB6.0からExcel表を起動する。
 (2)VB6.0からExcel表のマクロ(VBAで作成した言語)を起動する。
 (3)Excel表のマクロで対象データをテキストファイルに出力する。

・VBで抽出した大量データをExcel表にセットする場合、
 (1)VB6.0からExcel表を起動する。
 (2)VB6.0からExcel表のマクロ(VBAで作成した言語)を起動する。
 (3)Excel表のマクロで対象データをExcelの各セルにセットする。
簡単にいうとこんな感じでしょうか?
私は、VB6.0の帳票など、すべてExcel表で印刷指示しております。

ですから、こちらのページはとても参考になります。
以上、参考までに・・・


▼ちん さん:
>皆さん今晩は、ちんといいます
>>  xlApp.Visible = True 命令の下に、
>MSGBOX xlApp.Application.Cells(Target.Row, 1).Value を入れてみて下さい。
>
>▼VB初心者 さん:
>>VB6からExcleを表示させて任意の行をアクテイブにして番号を取得して
>>各セルの値をVB6でしたいのですがどの様にすればできるのでしょうか
>>フアイル名は指定しないのでExcel表示の後フアイル名を指定してデ−タ表示
>>しています。Cells(Target.Row, 1).Valueの値をVB6で使用したいのです
>>VB6で変数を設定してもVBでは無視されてしまいます。
>>説明がわかりずらいでしょうがどなたかお教えください。
>>使用環境 VB6(SP5) Excle 2002(SP3)です
>>
>>VB6で
>>Private Sub Command3_Click() 'Excleファイルを開く
>>  Dim xlApp As Object
>> 
>>  Set xlApp = CreateObject("Excel.Application")
>>  xlApp.Visible = True
>Msgbox xlApp.Application.Cells(Target.Row, 1).Value
>※この命令を追記すれば、エクセルから値が取得・書換えもできるはずです。
>ただし、Excel表のActiveになってる画面からの取得になります。
>
>以上、参考までに・・・
>
>>  MsgBox " eee" '--- Excle画面を表示しておく為  
>>  xlApp.Application.Quit 
>>  Set xlApp = Nothing 
>>  Set xlBook = xlApp.Workbooks.open("c:\aaa.xls")
>>End Sub
>>
>>VBで
>>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>>  Dim mo As String
>>  '指定したセルの値を表示   
>>  MsgBox Cells(Target.Row, 1).Value: MsgBox Cells(Target.Row, 2).Value
>>End Sub
1 hits

【15662】VB6からExcleの値を使いたい VB初心者 04/7/1(木) 18:15 質問
【15663】Re:VB6からExcleの値を使いたい IROC 04/7/1(木) 18:23 回答
【15666】Re:VB6からExcleの値を使いたい VB初心者 04/7/1(木) 18:44 お礼
【15664】Re:VB6からExcleの値を使いたい ちゃっぴ 04/7/1(木) 18:28 回答
【15665】Re:VB6からExcleの値を使いたい VB初心者 04/7/1(木) 18:42 お礼
【15696】Re:VB6からExcleの値を使いたい ちん 04/7/2(金) 21:58 回答
【15700】Re:VB6からExcleの値を使いたい 初心者 04/7/3(土) 11:38 質問
【15704】Re:VB6からExcleの値を使いたい IROC 04/7/3(土) 12:45 回答
【15710】Re:VB6からExcleの値を使いたい ちん 04/7/3(土) 17:07 回答
【15711】Re:VB6からExcleの値を使いたい 初心者 04/7/3(土) 18:08 お礼

65597 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free