• ベストアンサー

エクセルVBA読み込みアドレスの最後に「¶」

エクセルVBA読み込みアドレスの最後に「¶」 エクセルVBAでテキストボックスに画像ファイルの読み込みをすると、アドレスの最後に「¶」が入力されてしまい、エラーとなってしまいました。「¶」を削除すると読み込む事が出来ましたが、読み込みの際に入力されない方法はありますか。(表示の際にテキストの左端一文字を削除すればよいのですが) 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

>エクセルVBA読み込みアドレスの最後に「¶」 自分でつけてるじゃないですか...orz >PICNA = Replace$(PICNA & OpenFileName(i) & vbCrLf, ChrW(182), "") の『vbCrLf』... NACARDSU が何者かわかりませんけどTextBoxだったら   Dim OpenFileName As Variant   OpenFileName = Application.GetOpenFilename(FileFilter:="画像,*.JPG")   If VarType(OpenFileName) = vbBoolean Then Exit Sub   NACARDSU.Text = CStr(OpenFileName) これで単独選択。 MultiSelect:=True でListBoxにファイル名を読み込みたいなら   Dim OpenFileName As Variant   OpenFileName = Application.GetOpenFilename(FileFilter:="画像,*.JPG", MultiSelect:=True)   If VarType(OpenFileName) = vbBoolean Then Exit Sub   Me.ListBox1.List = OpenFileName

achilles46
質問者

お礼

解決しました。!!!!バカみたい。 私が理解しないで付けていたのですね。 自分でコードを付けたのではなく、試行錯誤でいろいろコピーしたり して作ったものですから。ありがとうございました。 感謝感謝です。勉強になりました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

ぃや、だ か ら。 PIC = Replace$(ClList.List(ClList.ListIndex, 9), ChrW(182), "") CLPIC.Value = PIC Image1.Picture = LoadPicture(PIC) #私のres#1は無駄レスなの?......orz

achilles46
質問者

補足

コードを確認してみました。コードは182でした。 また、ご指導の通り実施してみましたが、同じでした。 テキストボックス内には表示されていますが、実際のエクセルのセル内には この文字が記載されていませんでした。 数式バー内のアドレスが、「alt+eEnter」で改行されている様な状態が原因の様です。 ちなみに下記コードでテキストボックスに読み込みむとアドレスの最後に表示されます。 この段階で削除してテキストボックスをセルに書き込むと問題なく画像が表示されます。 エクセルの数式バーの最後で「BS」で1行にしても「パス名が無効です」とエラーとなります。 「・・・.jpg」の「g」1文字を削除して入力し直すと問題なく読み込めました。 Private Sub PICRE1_Click() '画像取り込み On Error GoTo err_exit 'エラー回避 Dim C As Integer Dim OpenFileName As Variant, PICNA As String, i As Long OpenFileName = Application.GetOpenFilename(FileFilter:="画像,*.JPG", _ MultiSelect:=True) For i = 1 To UBound(OpenFileName) PICNA = Replace$(PICNA & OpenFileName(i) & vbCrLf, ChrW(182), "") Next i NACARDSU.Value = PICNA Exit Sub err_exit: '2エラーの場合 MsgBox ("やり直してください。") end sub 質問のしかたが悪いのと、VBAもまだ良く理解しておりません。 宜しくお願いします。

すると、全ての回答が全文表示されます。
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

テキストボックスに表示されたアドレス文字列を元に画像ファイルを読み込んでいるという事ですか? 今ひとつ状況が掴めないですが、取り敢えず不要な文字をReplaceしてしまえば良いのでは。 念のため、最後の1文字の文字コードを調べてみてください。 Debug.Print AscW(Right$(Me.TextBox1.Text, 1)) 例として、182だったら With Me.TextBox1   .Text = Replace$(.Text, ChrW(182), "") End With な感じで。

achilles46
質問者

お礼

ごめんなさい。 会社のパソコンにあるため、詳しく説明しようとしてつい・・・ 週明けに調整してみます。(1週間出張なので出張先で試してみます少々お時間を) ありがとうございました。

achilles46
質問者

補足

早速の対応ありがとうございます。 データベースからある条件でリストボックスに読み込みます。そのリストボックスをクリックするとテキストボックスとイメージに表示する。 Dim PIC As String PIC = ClList.List(ClList.ListIndex, 9) CLPIC.Value = PIC Image1.Picture = LoadPicture(CLPIC.Value) Image2.Picture = LoadPicture(CLPIC.Value) このCLPICテキストボックスに、ファイルopenダイヤログを開いてパス名を取得するまでできたのですが パス名の最後に「¶」が着いているのです。社内lanなのでパス名が非常に長いです。 よろしくご指導お願いします。

すると、全ての回答が全文表示されます。

関連するQ&A