Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
任意フォルダ内の画像を開き、名前と登録先を自動指定して保存
投稿日時: 17/10/22 17:59:09
投稿者: aloha_vba

いろいろとコピペして、写真も表示される備品録(住所録の流用)を作りました。「Userform1」(入力閲覧)中「ComboBox1」は「登録番号」で、例えば「001」を表示すると、別フォルダ内の"写真001"が「Userform1」中の「Image1」に表示されます。
今後「UserForm」から写真を追加できるよう、できれば「UserForm3」(写真登録/更新)中の「CommandButun1」(画像を開く)を押したら、任意フォルダを開いて画像ファイルをクリックすると、その画像が「UserForm3」中の「Image1」に表示され、「UserForm3」中の「CommandButun2」(画像の保存)を押すと、予め指定したフォルダに"写真○○○"という名前で保存できるように改造したいと考えています。○○○は「UserForm1」中の「ComboBox1」の数値です。
 
「任意のフォルダを開く」に関しては、下記コードが100%イメージどおりで、
Sub FolderOpen()
 Dim Dammy As Variant
 Dammy = Shell("explorer.exe c:\", vbNormalFocus)
 End Sub
 
上記で画像を開いた後、下記を応用して画像を表示して、
Private Sub CommandButton1_Click()
      ' イメージに画像を設定する
      Image1.AutoSize = True
      Image1.Picture = LoadPicture("C:\Users\ユーザー名\Desktop\test.bmp")
End Sub
 
下記を応用して、保存できればと考えていました。
Sub Sample()
    UserForm1.Picture = LoadPicture("C:\Windows\雲.bmp")
    MsgBox "この画像をC:\Test.bmpとして保存します"
    SavePicture UserForm1.Picture, "C:\Test.bmp"
    UserForm1.Picture = LoadPicture()
End Sub
 
しかしながら、なかなかピッタリの情報が得られず、コピペレベルの私では、この先に進めません。
このような状況ですが、どなたかわかる方がおられましたら、
大変恐れ入りますが、何卒、ご教示願えないでしょうか。宜しくお願いいたします。

回答
投稿日時: 17/10/22 18:56:45
投稿者: WinArrow
投稿者のウェブサイトに移動

ユーザーフォームに取り込んだ画像を画像ファイルとして保存は、無理と思います。
 
取り込んだ画像のファイルパスが分かっているんだから
ファイルを複写するとよいでしょう。

回答
投稿日時: 17/10/22 19:10:01
投稿者: WinArrow
投稿者のウェブサイトに移動

SHELLより
 
GetFileNameメソッドを使った方が簡単だと思います。
 
 
イメージ
    Dim OpenFileName As String
    OpenFileName = Application.GetOpenFilename("BMPファイル,*.bmp?")
   UserForm1.Picture = LoadPicture(OpenFileName)
   FileCopy OpenFileName, "C:\Test.bmp"
 
  
 

投稿日時: 17/10/23 03:35:59
投稿者: aloha_vba

早速のご回答ありがとうございました。
アドバイスいただいたコードは、参考にさせていだきます。

投稿日時: 17/10/24 11:31:01
投稿者: aloha_vba

解決致しました。
ありがとうございました。