- ベストアンサー
画像読み込み失敗の判定
ap_2の回答
- ap_2
- ベストアンサー率64% (70/109)
>エラーメッセージを回避して一発で処理できれば理想的 ・・・って話なら On Error Resume Next で、どーかな。 DisplayAlertsは確認ダイアログを出さないだけなので、エラーで処理中断しますよ。
関連するQ&A
- VB6 エクセルに画像貼り付け
お世話になります。 VB6でエクセルのセルを数値で指定して、そこに画像を読み込んで実態を張り付けたいのですが、 色々調べて ActiveSheet.Pictures.Insertと ActiveSheet.Shapes.AddPictureを試してみましたが ActiveSheet.Shapes.AddPicture( FileNameTmp, False, True, 10, 20, 0, 0) AddPictureはもしかしてVB6には対応していないのでしょうか? 構文エラーになってしまいます。 ActiveSheet.Pictures.Insert(FileNameTmp).Select Insertだと画像がリンクになってしまいます。
- ベストアンサー
- Visual Basic
- Shape画像保存モードの事後変更
VBA Excel2007を使用しています。 画像を読み込むために、例えば、 Dim picture As Shape Set picture = ActiveSheet.Shapes.AddPicture(filename:=filename, LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, Left:=Selection.Left, Top:=Selection.Top, Width:=0, Height:=0) のように、一旦、画像を「文書とともに保存しない」モードで読込み、後にそのShape画像を「文書とともに保存する」ように変更することは、可能でしょうか。
- ベストアンサー
- Visual Basic
- エクセルでリンクされたイメージが表示できません
エクセルでリンクされたイメージが表示できませんとたまに表示されます。 この理由はどうしてですか? 画像は下記のVBAを用いてセルC113に貼っています。 Sub 貼付() ActiveWindow.View = xlNormalView Range("C113").Select myFileName = "C:\凡例.bmp" '---挿入する画像ファイルの指定 'Cells(113, 3).Select 'ActiveSheet.Pictures.Insert Filename:=myFileName '---選択位置に画像を挿入 Set myShape = ActiveSheet.Shapes.AddPicture(Filename:=myFileName, _ LinkToFile:=True, SaveWithDocument:=False, Left:=Selection.Left + 50, _ Top:=Selection.Top, Width:=200#, Height:=100#) end sub
- ベストアンサー
- Visual Basic
- 画像の貼り付けに関して
環境:Visual Basic 2008 教えて下さい。 現在、あるフォルダに格納されている画像ファイルを、EXCELに貼り付けるような プログラムを作成中で、以下のようなサンプルを見つけましたが、単純に貼り付けではなく、 指定のセルに貼り付けたいと考えています。 そのような指定のセルに貼り付ける為にはどのような記述をしたら良いでしょうか? 教えて下さい。 《現在の記述》 Dim xlApp As New Excel.Application Dim xlWb As Excel.Workbook Dim xlWs As Excel.Worksheet Dim FileNameTmp As String xlWb = xlApp.Workbooks.Open("C:\abc.xls") xlApp.Visible = True xlWs = xlWb.ActiveSheet FileNameTmp = "C:\ABC.png" ' シートオブジェクトを用いない時 xlApp.ActiveSheet.Shapes.AddPicture(FileNameTmp, False, True, 10, 20, 100, 100) 'シートオブジェクトを用いた時 'xlWs.Shapes.AddPicture FileNameTmp, False, True, 10, 20, 100, 100 よろしくお願いします。
- ベストアンサー
- Visual Basic
- Excel2003で簡単な図形の表示と非表示のプログラムを作成したので
Excel2003で簡単な図形の表示と非表示のプログラムを作成したのですが上手く出来ません UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1に楕円の図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1に楕円の図形2非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1に楕円の図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1に楕円の図形2表示 End Sub 上記の記述では上手くいくのですが、下記の様に ワークシート2の図形3と4も同様に表示・非表示したいため追加するとエラーになります。 UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1の楕円図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1の楕円図形2非表示 ActiveSheet.Shapes("Oval 3").Visible=True 'ワークシート2の楕円図形3表示 ActiveSheet.Shapes("Oval 4").Visible=False 'ワークシート2の楕円図形4非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1の楕円図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1の楕円図形2表示 ActiveSheet.Shapes("Oval 3").Visible=False 'ワークシート2の楕円図形3非表示 ActiveSheet.Shapes("Oval 4").Visible=True 'ワークシート2の楕円図形4表示 End Sub VBAの勉強中の初心者です。教えて頂けないでしょうか。
- ベストアンサー
- オフィス系ソフト
- 複数のセルのなかに該当があればオートシェイプを表示
http://okwave.jp/qa/q8365189.html 上記質問の続きです。 画像のようなチェック表をExcelで作っています。 右側欄外に表を作成し、 ◎を付ける番号、○をつける番号をそれぞれ入力し、 「入力内容を反映」ボタンをクリックすると、 オートシェイプで配置した◎や○が表示されるようにしたいです。 VBAを以下のように作成してみたのですが、 ◎はつくのですが、 ○をつけるVBAが動きません。 どのように修正するべきでしょうか? ご教授ください! Private Sub CommandButton1_Click() '○で囲むVBA Dim c For Each c In Range("U103:Y103") If InStr(c.Value, "1") > 0 Then ActiveSheet.Shapes("1を囲む○").Visible = True Else ActiveSheet.Shapes("1を囲む○").Visible = False End If If InStr(c.Value, "2") > 0 Then ActiveSheet.Shapes("2を囲む○").Visible = True Else ActiveSheet.Shapes("2を囲む○").Visible = False End If Next c ・ ・ ・ '最も重要なものを◎で囲むVBA If Range("T103").Value = "1" Then ActiveSheet.Shapes("1を囲む◎").Visible = True Else ActiveSheet.Shapes("1を囲む◎").Visible = False End If If Range("T103").Value = "2" Then ActiveSheet.Shapes("2を囲む◎").Visible = True Else ActiveSheet.Shapes("2を囲む◎").Visible = False End If ・ ・ ・ End Sub ちなみに「'○で囲むVBA」のコードだけを残して動作させてみると、 1や2が一番右のセル(Y103)に入力されると、1を囲む○、2を囲む○がそれぞれ表示されるのですが、 それ以外のセル(U103からX103)に1や2を入力しても○は表示されません。 全コードを入力して動作させると、 1や2を一番右のセル(Y103)に入力しても○はどこにも表示されません。 よろしくお願いいたします!
- ベストアンサー
- オフィス系ソフト
- ワードでマクロで画像を中央揃えにしたい
ワードでマクロを使って、挿入・画像ファイルで取り込んだ画像を、レイアウトの詳細設定で水平、垂直ともページを基準にして、中央揃えにしたいのです。 画像は1ページに1枚です。 たくさんの画像を一つ一つやるのは大変です。 やり方のわかる方がいたらお願いします。 参考までに画像を取り込む部分を載せておきます。 ' Sub Macro1() ' Dim FileName As String ' ChDir ThisDocument.Path ' FileName = Dir("*.jpg") While FileName > "" Selection.InsertBreak Type:=wdPageBreak ' 改ページ Application.Browser.Previous ' 前のページへ ' 画像の読み取り ActiveDocument.Shapes.AddPicture(Anchor:=Selection.Range, _ FileName:=FileName, LinkToFile:=False, _ SaveWithDocument:=True).WrapFormat.Type = 5 ' Application.Browser.Next ' 次のページへ ' FileName = Dir Wend ' End Sub '
- 締切済み
- Visual Basic
- エクセルに画像挿入
以前の投稿で下記のようなVBAを拝見しました。 実行するとA列に画像ファイル名、B列に画像が縦に配置されます。 これを横に配置するにはどうすればいいのでしょうか? 初心者なので質問不足かもしれませんがよろしくお願いします。 Sub PictAdd() Dim pict As Shape, r As Range With Application.FileSearch .NewSearch .LookIn = ThisWorkbook.Path .SearchSubFolders = False .Filename = "*.jpg" If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Set r = ActiveSheet.Range("B" & i) Set pict = ActiveSheet.Shapes.AddPicture _ (.FoundFiles(i), msoTrue, msoFalse, _ r.Left, r.Top, r.Width, r.Height) pict.OnAction = "PictClick" r.Offset(0, -1).Value = Dir(.FoundFiles(i)) Next i End If End With Columns(1).EntireColumn.AutoFit End Sub
- ベストアンサー
- Visual Basic
- H列の画像の下に画像を挿入できるようにしたい
H列の画像の下に画像を挿入できるようにしたいです。 マクロを組んでみたのですが、A列に画像があった場合、 その下に画像が挿入されてしまいます。 H列のみで判断して挿入するにはどうすればよろしいでしょうか。 Sub 改修後写真添付() Dim FileName As Variant Dim I, F, endRow As Long Dim sheetName As String Dim shp As Shape sheetName = ActiveSheet.Name FileName = Application.GetOpenFilename(MultiSelect:=True) On Error GoTo err_shori If Range("H5") = "" Then I = 5 Range("H5").Value = "画像添付" Else For Each shp In ActiveSheet.Shapes endRow = Application.Max(endRow, shp.BottomRightCell.Row) Next I = 2 + endRow End If For F = 1 To UBound(FileName) With Sheets(sheetName).Pictures.Insert(FileName(F)) .Top = Range("H" & I).Top .Left = Range("H" & I).Left .Width = "170" .Height = "165" .Cut End With With Sheets(sheetName) .Range("H" & I).Select ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:=False End With I = I + 14 Next F MsgBox UBound(FileName) & "個の画像ファイルが挿入されました。" Exit Sub err_shori: MsgBox "キャンセルされました。" End Sub
- ベストアンサー
- Visual Basic
- Shapes の使い方について
今まで、Excel VBA で、 If ActiveSheet.Button1.Visible = False Then Exit Sub End If が問題なく動いていましたが、VISTA を使っておられる人からエラーが出るという指摘を受けました(Excel のバージョンはわかりません)。どうやら上の文に問題があるような気がして、いろいろ調べてみましたら、皆さん If ActiveSheet.Shapes("Button1").Visible = False Then Exit Sub End If としておられるようなのです。なぜ、Shapes("Button1")としなければならないのか、教えていただけませんか。
- 締切済み
- Visual Basic
お礼
有難うございます。 その方法はすでに試してみました。 DisplayAlerts = False にした上で、 On Error Resume Next picuter = ActiveSheet.Shapes.Addpicture(....) としても、破損画像に出会うと、エラーメッセージが出てしまいます。 他のエラー(たとえば、既に存在するフォルダと同名のフォルダ作成、ゼロ割など)では、 On Error Resume Next で、何も表示されずに次に進むようですが、 Addpicture()についてはダメなようです。