[リストへもどる]
一括表示

投稿時間:2003/09/25(Thu) 15:23
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
ファイルリストからExclを開く

    Public xlApp As Excel.Application
    Public xlBook As Excel.Workbook
    Public xlSheet As Excel.Worksheet
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub Command1_Click()
    
    On Error Resume Next
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2&quo
t;)
    Set xlSheet = xlBook.Worksheets(1)
    xlApp.Visible = True
    
  
End Sub
--------------------------------------------------------------------
このPathでExclを表示できないんでしょうか?
また、不具合がわかりましたらご教授ください。

投稿時間:2003/09/25(Thu) 16:29
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ファイルリストからExclを開く
>     Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2&quo
> t;)

上記の()内の値がファイルのフルパスになっているかよく調べて下さい。

上記のコードの手前に下記を記入して見れば解るかと。

  Debug.print "Dir1.Path & " \ " & File2"

投稿時間:2003/09/25(Thu) 16:56
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re^2: ファイルリストからExclを開く

> 上記の()内の値がファイルのフルパスになっているかよく調べて下さい。
>
> 上記のコードの手前に下記を記入して見れば解るかと。
>
>   Debug.print "Dir1.Path & " \ " & File2"
手前と言うのはどこですか?
一番はじめですか?

投稿時間:2003/09/25(Thu) 17:09
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ファイルリストからExclを開く
> 手前と言うのはどこですか?
> 一番はじめですか?

ファイルリストボックスでファイルを選択した後ならどこでもかまいませんが
下記イベント内で試して見て下さい。
Private Sub File1_Click()
  Debug.print "Dir1.Path & " \ " & File2" ’文字化けしている部分は直してから
End Sub

又、ここの逆引きヘルプのファイルシステムコントロール(ドライブ・リスト・他)の連動も見ておいて
下さい。
# 文字列以外は "" で囲わないように!

投稿時間:2003/09/25(Thu) 17:15
投稿者名:初心者
URL :
タイトル:
Re^4: ファイルリストからExclを開く
実行してみたところなんとかExcl自体はたちあがるのですが、
Sheetが表示されません。
それにも何か問題がありそうですか?

投稿時間:2003/09/25(Thu) 17:25
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: ファイルリストからExclを開く
> 実行してみたところなんとかExcl自体はたちあがるのですが、

前回の問題は解決したのですか?
イミディエイトウインドウにはどのように表示されましたか?

#マルチポストは両サイト共禁止されてますよ!

投稿時間:2003/09/25(Thu) 17:30
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re^6: ファイルリストからExclを開く
> > 実行してみたところなんとかExcl自体はたちあがるのですが、
>
> 前回の問題は解決したのですか?
何とかExcl自体はいけました。
ありがとうございます。
> イミディエイトウインドウにはどのように表示されましたか?
特に何も表示されていませんが。それもおかしいですか?
>
> #マルチポストは両サイト共禁止されてますよ!
すみません。これからは気をつけます。

投稿時間:2003/09/25(Thu) 17:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: ファイルリストからExclを開く
> > イミディエイトウインドウにはどのように表示されましたか?
> 特に何も表示されていませんが。それもおかしいですか?

Private Sub File1_Click()
  Debug.print Dir1.Path & " \ " & File2
End Sub

上記を実行したらイミディエイトウインドウに表示されるはずですが?

Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2&quo
t;)

この部分はどのように変更したのですか?

投稿時間:2003/09/25(Thu) 17:53
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re^8: Exclを開く
> > > イミディエイトウインドウにはどのように表示されましたか?
> > 特に何も表示されていませんが。それもおかしいですか?
>
> Private Sub File1_Click()
>   Debug.print Dir1.Path & " \ " & File2
> End Sub
>
> 上記を実行したらイミディエイトウインドウに表示されるはずですが?
Pathは正常に取得できているみたいです。
ほかに原因ありますか?

投稿時間:2003/09/25(Thu) 17:59
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^9:Exclを開く
Set xlBook = xlApp.Workbooks.Open("Dir1.Path & "\ " & File2")
この部分はどのように変更したのですか?

これでは取得できないはずですが。

もう一度正しいコードをすべて(途中省略せずに)投稿して下さい。
(コピー&ペーストで)

投稿時間:2003/09/25(Thu) 17:57
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re^8: Exclを開く
> この部分はどのように変更したのですか?
すみません、抜けていました。下記のようにです。
Set xlBook = xlApp.Workbooks.Open(Dir1.Path & " \ " & File2)

投稿時間:2003/09/25(Thu) 18:47
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re9: ファイルリストからExclを開く
> > この部分はどのように変更したのですか?
> すみません、抜けていました。下記のようにです。
> Set xlBook = xlApp.Workbooks.Open(Dir1.Path & " \ " & File2)


イミディエイトウインドウにはどのように表示されましたか?
C:\My Documents \ Book1.xls このように表示していませんか?

これではエラーが出てExcelが表示されないでしょう。
Dir1.Path & "\" & File2 でないと


正しく動作するまで On Error Resume Next は削除しておきましょう。


ちなみに File2 は変数名ですか? File2.FileName ですか?

もう一度正しいコードをすべて(途中省略せずに)投稿して下さい。
(コピー&ペーストで)

投稿時間:2003/09/26(Fri) 09:12
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re: Re9: ファイルリストからExclを開く
これが全てのコードです。
おかしなところがありましたら、教えてもらえますか?    
    Public xlApp As Excel.Application
    Public xlBook As Excel.Workbook
    Public xlSheet As Excel.Worksheet


Private Sub Command1_Click()
    
    On Error Resume Next
    
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2"
)
    Set xlSheet = xlBook.Worksheets(1)

  
    xlApp.Visible = True
    
  
End Sub


Private Sub Command2_Click()
  xlSheet.Pictures.Insert Dir1.Path & "\" & File1
  '3.54 4.73
End Sub

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    File2.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    
End Sub


Public Sub File1_Click()
  Image1.Stretch = True
    Dim file As String
    Dim myshape As Shape
    
    
    Image1.Picture = LoadPicture(Dir1.Path & "\" & File1)
  
        
End Sub



Private Sub Form_Load()
  Dim lngPosX As Long
  Dim lngPosY As Long
  
  Const HWND_TOPMOST = (-1)
  Const SWP_NOSIZE = &H1
  Const SWP_NOMOVE = &H2
  lngPosX = Me.Left / Screen.TwipsPerPixelX
  lngPosY = Me.Top / Screen.TwipsPerPixelY
  SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
  
  Drive1.Drive = "c"
  

End Sub

投稿時間:2003/09/26(Fri) 13:11
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^2: Re9: ファイルリストからExclを開く
> Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2")

これだと、\は演算子として働くので、"Dir1.Path & " を " & File2" で割ったときの商を
求めることにりますが、文字列の商を求めることは出来ないので、「型が一致しません」という
エラーになるはずです。

Set xlBook = xlApp.Workbooks.Open(Dir1.Path & "\" & File2)
ですね。

投稿時間:2003/09/26(Fri) 13:43
投稿者名:Kusakabe
Eメール:
URL :
タイトル:
Re: ファイルリストからExcelを開く
> これが全てのコードです。
> おかしなところがありましたら、教えてもらえますか?    

> Public xlApp As Excel.Application
> Public xlBook As Excel.Workbook
> Public xlSheet As Excel.Worksheet
ここは何故Publicなのでしょうか? :-P
何箇所かで使いまわししているならルーチンを作りその中でPrivateに宣言しないと、
第三者が見た時に、見づらいです。:-)

> Private Sub Command1_Click()
なるべく、オブジェクト名は機能についてわかるようにしましょう :)

> On Error Resume Next
ちゃんと動くまでコメントアウトしておきましょう。
※ 念のため→コメントアウトとは行先頭に「'」をつけることです。
    
> Set xlBook = xlApp.Workbooks.Open("Dir1.Path & " \ " & File2")
何人かのヒトが答えてくれたように、これはおかしいです :)
まず、Dir1.Pathというのは、あなたが用意した文字列ではないですね。
オブジェクト名やプロパティにはダブルクォーテーション(")で括らないこと。
正しくは、(Dir.Path & "\" & File2)ですね。
「あなたが用意した文字列ではないですね」という書き方をしたのは、
オブジェクト名やプロパティや変数と文字列の扱いの違いをわかっていないからです。
これはCだろうとVBだろうとJavaだろうとプログラム言語の基本です。
どの言語でも基本がわかっていないと質問をしてもわかってもらえません。
今回、何回も質問をして行き違いになっていたのがわかりませんでしたか? :-P
まずは、最低限の勉強をしておくべきです :)
その最低限というのは悪魔で基本レヴェルなので、誰でも容易に学べるはずです。

あとExclってExcelのことですよね? :-P

投稿時間:2003/09/26(Fri) 17:47
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re^2: ファイルリストからExcelを開く
いろいろとご指摘恐れ入ります。
ご指摘どおりプログラム自体完全な初心者なので、
不快感を与えてしまい申し訳ありません。
Kusakabeさんが言ってることは、全てその通りです。

投稿時間:2003/09/26(Fri) 18:15
投稿者名:初心者
Eメール:t.igawa@microtv.co.jp
URL :
タイトル:
Re: ファイルリストからExclを開く
全て解決しました。
皆さんのご指摘を生かせるようにがんばります。
本当に皆さんありがとうございました。

投稿時間:2003/09/27(Sat) 12:25
投稿者名:Kusakabe
Eメール:
URL :
タイトル:
Re^2: ファイルリストからExclを開く
> 全て解決しました。
> 皆さんのご指摘を生かせるようにがんばります。
> 本当に皆さんありがとうございました。

VBは基本さえ覚えればいくらでも応用がききます。
最低でもちょっとネットで調べればわかる言語です。
頑張ってみてください。

# プログラミングの楽しさがやみつきになったら別言語にいくのもいいでしょう。