プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/19 18:15

ぃや、だ か ら。



PIC = Replace$(ClList.List(ClList.ListIndex, 9), ChrW(182), "")
CLPIC.Value = PIC
Image1.Picture = LoadPicture(PIC)

#私のres#1は無駄レスなの?......orz

この回答への補足

コードを確認してみました。コードは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もまだ良く理解しておりません。
宜しくお願いします。

補足日時:2010/01/19 13:35
    • good
    • 0

テキストボックスに表示されたアドレス文字列を元に画像ファイルを読み込んでいるという事ですか?


今ひとつ状況が掴めないですが、取り敢えず不要な文字をReplaceしてしまえば良いのでは。
念のため、最後の1文字の文字コードを調べてみてください。
Debug.Print AscW(Right$(Me.TextBox1.Text, 1))

例として、182だったら
With Me.TextBox1
  .Text = Replace$(.Text, ChrW(182), "")
End With
な感じで。

この回答への補足

早速の対応ありがとうございます。
データベースからある条件でリストボックスに読み込みます。そのリストボックスをクリックするとテキストボックスとイメージに表示する。

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なのでパス名が非常に長いです。
よろしくご指導お願いします。

補足日時:2010/01/08 21:44
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/09 00:16

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