- ベストアンサー
Excel VBAによるイメージ保存の方法と問題解決
- Excel VBAを使用して、画像を個別に名前を付けて保存する方法を紹介します。
- 質問者は、現在のVBAコードで1枚の画像しか保存できない問題に直面しています。
- 解決策として、VBAコードを修正して全ての画像を個別に保存できるようにする方法を説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 画像ファイルを保存する方法
洗濯してる画像を保存するvbaコードが知りたいのですが Sub Sample() Dim PicFile As String Dim myRess As Variant PicFile = "C:\Users\test.jpg" ActiveSheet.Pictures.Insert PicFile ActiveSheet.Pictures.Insert(PicFile).Select PicFile = Selection.Name myRess = ActiveSheet.Shapes(PicFile).Picture.Export( _ ThisWorkbook.Path & "\test.jpg", "JPG", False) End Sub だと実行時エラー438になります。 Export メソッドは、グラフにしか使えないのでしょうか? 画像ファイルを保存する方法をご教授ください。
- ベストアンサー
- Excel(エクセル)
- ExcelのVBAについて
こんにちは、VBA初心者です。 C:\pictureの中に以下のファイルがあります。 DSC_0134.JPG~DSC_0154.JPG これらのファイルをExcelのA列1~20行に書かれた文字△○%&◎~▲▽%%★に.JPGをつけて保存したくて以下のコードを書きました。 Dim buf As String Dim msg As String Dim i As Integer Dim A As Variant i = 1 buf = Dir("dsc*.jpg", vbNormal) Do While buf <> "" Do While i < 21 buf = Dir() msg = buf 'msg=元の名前 A = Worksheets("sheet1").Cells(i, 1).Value Worksheets("sheet1").Cells(i, 2).Value = msg Name "C:\picture\msg" As "C:\picture\A.jpg" i = i + 1 Loop Loop Name "C:\picture\msg" As "C:\picture\A.jpg"のところで、「ファイルがありません。」となってしまいます。 あと、Worksheets("sheet1").Cells(i, 2).Value = msgのところで、\pictureの中の最初のファイル(DSC_0134.JPG)を表示しません。 どこを直せばよいのでしょうか?
- ベストアンサー
- Visual Basic
- VBAでwebの画像を名前を付けて保存する方法
下記でエクセルのシートには保存はできましたが直接画像をjpegでファイルとして保存するにはどうすれば良いでしょうか? マクロの記録では無理でした・・・ どなたかご存知の方よろしくお願いいたします。 Sub test() Dim IMG As Variant Dim wbooks As Workbook Dim Filename As String Set wbooks = Workbooks.Add Filename = "C:\テスト\" & Format(Date - 1, "yyyymmdd") & ".xlsx" wbooks.SaveAs (Filename) IMG = "http://t-success.co.jp/image.jpg" With ActiveSheet.Pictures.Insert(IMG) .Top = Range("A1").Top .Left = Range("A1").Left End With wbooks.Save End Sub
- ベストアンサー
- その他(プログラミング・開発)
- vbaでCountIf関数を使いたい(エクセル)
A1セルにa-a-aがはいっています。 この場合aは3つですよね。 これをvbaで取得するコードを作っているのですがうまくできません。 Sub test() Dim myStr As String myStr = "a" MsgBox WorksheetFunction.CountIf(Cells(1, 1), "*" & myStr & "*") End Sub これをすると、なぜか1が返ってきます。 Aは3つあるのになぜ1が返るのでしょうか? A1にaaaaaを入れて実行しても1が返ります。
- ベストアンサー
- オフィス系ソフト
- エクセルのVBAで、フォルダごとコピーしたいのですが…
エクセルのVBAで、フォルダごとコピーしたいのですが… Dドライブの”TEST"というフォルダを、同じくDドライブに"TEST2"という名前でコピーしたいのです。 Private Sub sakusei_Click() Dim myFSO As New FileSystemObject myFSO.CopyFolder "D:\TEST", "D:\TEST2" End Sub ではうまくいかないのです。 私は初心者なので調べてもよくわからないので、 有識者の方、是非教えてください。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAに関して
VBAの知識があまりないので教えて頂きたいのですが、セルの内容が変更されたら マクロが実行される Private Sub Worksheet_Change(ByVal Target As Range) というのがあるかと思います。 セルに書かれた関数によって、セルの内容が変化したときにマクロが実行されるVBA関数はあるのでしょうか?
- 締切済み
- Visual Basic
- VBA Wクリックイベント
A4用紙に縦3枚の写真を貼り付けたいのですが、1つに結合したセルをWクリックすると「ファイルを開く」を出し、写真を選び、Wクリックしたセルに貼り付けるようにしたいのです。 自分でマクロを作ってみました。 Sub Test() Dim fName, pict As Picture fName = Application.GetOpenFilename("JPG, *.jpg", MultiSelect:=True) If IsArray(fName) Then For i = 1 To UBound(fName) Set pict = ActiveSheet.Pictures.Insert(fName(i)) pict.TopLeftCell = ActiveCell pict.Width = 350 pict.Height = 250 ActiveCell.Offset(2, 0).Activate Next i End If End Sub これを実行させようと思うと一つ一つ ツール→マクロ→マクロ→実行をしなければなりません。 これをセルをWクリック等したら「ファイルを開く」が出るようなVBAはありませんでしょうか? それと低レベルな質問ですが、Wクリックでファイル呼出が出来たとして、それを貼り付けたいセル全部にファイル呼出が出来るようにするには、一つ一つマクロを書くのでしょうか? 初心者でわかりにくい書き方ですみません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルに写真を挿入するVBA
エクセルで写真集を作るためのVBAですが、以下のVBAでは画像がリンク貼り付けになってしまいます。どうしたらエクセルファイルに画像を貼りこみで保存できるのでしょうか? よろしくお願いいたします。 やりたいことは、まずダブルクリックでダイアログボックスを表示させ、挿入したい写真を選択、写真がセルに合わせた大きさに縮小、セルの中央に写真を配置。以上です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Dim PicFile As Variant Dim rX As Double, rY As Double '[ファイルを開く]ダイアログボックスを表示 PicFile = Application.GetOpenFilename( _ "画像ファイル,*.jpg;*.jpeg;*.gif;*.tif;*.png;*.bmp") If VarType(PicFile) = vbBoolean Then Cancel = True: Exit Sub Application.ScreenUpdating = False '画像を挿入 With ActiveSheet.Pictures.Insert(PicFile) rX = Target.Width / .Width rY = Target.Height / .Height If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If 'セルの中央(横方向/縦方向の中央)に配置 .Left = Target.Left + (Target.Width - .Width) / 2 .Top = Target.Top + (Target.Height - .Height) / 2 End With Application.ScreenUpdating = True Cancel = True End Sub
- 締切済み
- その他MS Office製品
- Excel VBA 実行されないのはなぜ
いつもお世話になっております。 VBAの練習で以下のような構文を作成し実行すると 構文のサンプルを並べているシートでのみエラーが表示されます。 新規シートでは実行されるので、なぜなのかと思います。 変数名が重複しているということもありません。 思い当たる点がありましたら教えてください。 よろしくお願いいたします。 Sub InputBoxメソッドで選択した範囲を取得する() Dim myselect As Range 'On Error Resume Next Set myselect = Application.InputBox("セル範囲を選択します。", Type:=8) If myselect Is Nothing Then Exit Sub myselect.Value = "test" End Sub
- ベストアンサー
- Visual Basic
- エクセルvba
エクセルvbaなのですが Sub test() Dim xlApp As Object Dim xlBook As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) 'コード・・・ Set xlApp = Nothing Set xlBook = Nothing End Sub これだと Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) の部分で、エラーになります。 実行時エラー1004です。 自身ファイルをオブジェクトに格納して操作したいのですがどうすればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
以下関数での保存が利かなくなりました。所々修正してみます。 ・CreatePictureFromClipboard() 関数 ・SavePictureJpg() 関数 ご教示いただきまして、ありがとうございました。