掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エクセルの画像データーを表示するには (ID:108112)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
『エクセルの画像データー』というのが、何の事を示しているのか 今ひとつ分からなかったのですが、とりあえず、 > If文で画像が有るときだけ表示するようにしたいのですが について回答しておきます。 まず、ファイルの存在チェックは、Dir関数で行えます。 例えば、『Dir("C:\Test.bmp")』を実行して、それが 空の文字列を返せば、ファイルが無い、という意味になります。 (隠しファイル等の存在判定もしたい時は、Dir関数の第2引数も指定します) ただし、これで判定できるのは、あくまでファイルの存在チェックだけです。 例えば、画像データが壊れていたり、あるいは、画像形式ではないファイルが 指定されていたりすれば、LoadPictureは失敗する事になるでしょう。 ですから、こういうときは『On Errorステートメント』を使って、 例外処理(エラートラップ処理)を行うのが一般的です。 (エラー処理の手順はヘルプに書かれていますので、そちらを参照して下さい) それから、 Picture1.Picture = LoadPicture(〜〜〜) このような書き方は、本来は正しくありません。 これは旧バージョンとの互換性のために残された書き方であり、VB6では、 Set Picture1.Picture = LoadPicture(〜〜〜) のように、「Set ステートメント」を使うのが正しいのです。 (たまにヘルプ等でも、Setを使わない古い記述が使われていますけれどね) VBの標準コントロールでは、互換性維持の理由から、Setを使わずとも Pictureオブジェクトを指定できるようになっていますが、その他の ActiveXコントロールなどでは、Setを使わないとエラーになってしまうものも ありますので、オブジェクトの指定時には、必ず、Setを使うようにしてください。 最後にもう一つ。 App.Pathは、アプリがドライブのルートにある時には、 最後に "\" が付加された状態( C:\ など)で返されます。 できれば、 Dim Path As String Path = App.Path If Right(Path, 1) = "\" Then Path = Path & Text1.Text Else Path = Path & "\" & Text1.Text End If などのように、場合わけを行った方が良いと思います。 なお、FileSystemObjectオブジェクトには、この為に使える 「BuildPath メソッド」という物が用意されており、これを使うと Path = objFSO.BuildPath(App.Path, Text1.Text) このフォルダの区切(\)の付加処理が、正しく行われます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.