dポイントプレゼントキャンペーン実施中!

Image1.Picture = LoadPicture("C:\VB練習\テストプログラム\ime1.jpg")

と作ります。当然作っている時は上の順番でフォルダ
から読み込まれてime1.jpgが表示されます。

ただ配布用にパッケージしてから他のPCで起動させると
("C:\VB練習\テストプログラム\ime1.jpg") が見当たりませんのようなエラーが出てプログラムが起動しません(T_T;

対処方法はありますか?

A 回答 (7件)

こんにちは。

maruru01です。

No.1の方と言いたいことは同じですが、
現在のパスが変更される可能性を考慮して、CurDirではなく、

App.Path

でExeファイルのパスを取得した方がいいと思います。
一応、末尾の「\」の有無を考慮して、以下のようにします。


Dim tempPath As String 'ファイルのパス

tempPath = App.Path
If Right(tempPath, 1) <> "\" Then
  tempPath = tempPath & "\"
End If

Image1.Picture = LoadPicture(tempPath & "テストプログラム\ime1.jpg")

この回答への補足

ありがとうございます!

え・・と初心者でcurdirとapp.pathはどこが
違うのかわかんないです?すみません。T_T?

>現在のパスが変更される可能性を考慮して、CurDirではなく、

とありますので、何かが大きく違うんでしょうけど
教えて頂けますでしょうかm__m;;;

補足日時:2004/01/14 17:14
    • good
    • 0
この回答へのお礼

出来ました!

ただ、
Image1.Picture = LoadPicture(app.path & "\ime1.jpg")
と試しにやってみたのですが、これで
VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか???

お礼日時:2004/01/14 17:30

作ったアプリはちゃんとデバッグしましょう



#5のソースなど
思いっきり
call ppp("テスト成功です")
書いてたりするが
call ppp("テスト成功")
ですね(爆)
    • good
    • 0
この回答へのお礼

でもでした^^

またお世話になります!

お礼日時:2004/01/14 22:28

>Image1.Picture = LoadPicture(app.path & "\ime1.jpg")


>と試しにやってみたのですが、これで
>VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか???
Exeファイルがある場所が、ドライブ直下の場合、App.Pathは、
「C:\」
と、末尾に"\"が付いてしまいます。
したがって、この場合には、

App.Path & \ime1.jpg

は、
「C:\\ime1.jpg」
となり、エラーになってしまいます。
このような、考えられるエラーは、可能性が極小でも回避措置を取っておくべきです。

>それを書かずにaの中のbのみを書き換える事は可能でしょうか?
基本的には無理です。
変数aには、
「こんにちは初心者です。」
の「初心者」の部分が、変数bによって代入されたという情報は保持されないからです。
さらに、代入のコードを書かない限り、内容を変更することは出来ません。

似たような方法としては、前後に
「こんにちは」「です。」
を付ける操作を1つのFunctionプロシージャにしておくというものでしょうか。
つまり、


Private Function Test(s As String) As String

  Test = "こんにちは" & s & "です。"

End Function


というプロシージャを作成しておいて、コマンドボタン1のクリックイベントで、

b = "テスト成功"
a = Test(b)

とします。
もちろん、Form_Loadイベントの方も、

b = "初心者"
a = Test(b)

とします。
いずれにせよ、変数aに代入しない限り内容は変更出来ませんが。
    • good
    • 0
この回答へのお礼

どもです^^

またお世話になります。

お礼日時:2004/01/14 22:27

こんにちわ---->こんにち「は」


という突っ込みは置いといてっと。
CurDirとApp.pathの説明は別な方にゆずるとして・・・
(うまい説明思いついたら自分が。)

>もう一ついいですか?
本当は改めて質問立てて欲しいけどどうぞ。
「直接は」出来ない気がする
'---------ここから----------
Private a as String

Sub ppp(a1 as String)

a = "こんにちは" & a1 & "です"

End Sub

Private Sub Form_Load()

call ppp("初心者")

End Sub

Private Sub Command1_Click()

call ppp("テスト成功です")

End Sub

Private Sub Command2_Click()

call ppp("VBマスターa12b12")

End Sub
'-----------ここまで------
    • good
    • 0

実はよく知らなかったので(おぃ調べてみました


http://donnk.com/Fudi/VBtips/VBtips12.html
の解説、わかりやすいかな?

この回答への補足

どもです!^^これから見てみます!
もう一ついいですか?
他の掲示板で聞いたのですが出来ないと言われましたT_T; なんか方法がないでしょうか?



-----------------------------------------------
 
Private Sub Form_Load()
b = "初心者"
a = "こんにちわ" & b & "です。"

End Sub
※これで「こんにちわ初心者です。」となります。

●次にコマンドボタン1を押すとbの値が変わります。

Private Sub Command1_Click()
b = "テスト成功"

End Sub
このcommand1に a = "こんにちわ" & b & "です。"
と記載すれば「こんにちわテスト成功です。」となりますが
それを書かずにaの中のbのみを書き換える事は可能でしょうか?

補足日時:2004/01/14 17:48
    • good
    • 0

>himajin2003さんはVB歴どれほどなんでしょう^^;


短いです。人に言えるほどの力はありません。

#以前、保存関係のものを回答した覚えがありますが、
何で「保存する処理を別のプロシージャにして」
Callで呼ばなかったんだろう・・・

>現在のパスが変更される可能性を考慮して、
>CurDirではなく、
ええ、実はめちゃくちゃ不安でした(^^;;:
コマンドプロンプトのcd見たいなコメント
知らないけどあるんじゃないかって。

maruru01さんのApp.pathを使う手の方が適切。

環境変数とかの利用も考えていました
学習されては>a12b12様。

セットアッププログラムでレジストリ残したり
する方法知らないです(^^;;;;

この回答への補足

環境変数やってみます!^^/ VB歴短くてそのレベル!!!すごいです!天才・・・・

補足日時:2004/01/14 17:19
    • good
    • 0
この回答へのお礼

出来ました!

ただ、
Image1.Picture = LoadPicture(app.path & "\ime1.jpg")
と試しにやってみたのですが、これで
VB練習\テストプログラム&"\ime1.jpgまで見れたのですがダメなのでしょうか???

お礼日時:2004/01/14 17:31

>イメージコントロールについてVB6


ん~、
今回の内容は
もちろん、ime1.jpgは同梱したよね?
実はイメージコントロールの話じゃないんだよね(汗)

貴方は***.exeを含めたフォルダを"C:\VB練習\テストプログラム"に作るかもしれないけど
他の人は"C:\Program Files\VB練習\テストプログラム"にインストールするかもしれない
そうなると画像は
"C:\Program Files\VB練習\テストプログラム\ime1.jpg"
にあるのであって、そのコードを実行したときに「ファイルがない」
って言われるのは明らかだ。

そこで提案。

CurDir関数を利用するとかはどうだろう??
Image1.Picture = LoadPicture(CurDir & "テストプログラム\ime1.jpg")
とかにするの。

CurDir関数はexeファイルの入っているフォルダをString型で返す。
だからexeが"C:\VB練習"にあれば
"C:\VB練習\テストプログラム&"\ime1.jpg"
"D:\VB練習\テストプログラム"にあれば
"D:\VB練習\テストプログラム" & "\ime1.jpg"
と柔軟に対応できる。
    • good
    • 0
この回答へのお礼

いつも本当にありがとうございます。
顧問先生になってほしいくらいです。

他の方に回答しているのも見ましたが
himajin2003さんVB分かりすぎ^^;(うらやましいです。

himajin2003さんはVB歴どれほどなんでしょう^^;
すばらしい・・・

まずやってみますね^^//

お礼日時:2004/01/14 16:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!