Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6677 / 76734 ←次へ | 前へ→

【75656】Re:画像の一括挿入
質問  ちゃぷ  - 14/6/6(金) 20:57 -

引用なし
パスワード
   If 挿入可能(objFile)をIf 挿入可能(objFile.Path)
にすることで、画像挿入はできるようになりましたが、
指定セルに画像を各々貼り付けする事ができません。
UserForm1に記載されているコードで画像挿入位置を
変えればよいかと思いますが、どこを変えたらよいか
わかりません。
いろいろ調べると下記コードに行き着きましたが、
繋げ方がわかりませんので、教えて下さい。

選択セルを左上端として画像を挿入
With ActiveSheet.Pictures.Insert(Filename:=myFileName)
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
End With

UserForm1
Private Sub CommandButton_OK_Click()
 Dim j As Long
 Dim EndColumn As Byte
 Dim MaxHeight As Long
 Dim MaximumWidth As Long
 For i = 0 To Me.ListBox1.ListCount - 1
  If Me.ListBox1.Selected(i) = True Then GoTo Line1
 Next i
 MsgBox "選択されていません", vbExclamation
 Exit Sub
Line1:
 MsgBox "新しいブックに画像を挿入します"
 Workbooks.Add
 Application.ScreenUpdating = False
 Range("A1").Select
 If Me.OptionButton_C1.Value Then
  EndColumn = 1
 ElseIf Me.OptionButton_C2.Value Then
  EndColumn = 3
 ElseIf Me.OptionButton_C3.Value Then
  EndColumn = 5
 ElseIf Me.OptionButton_C4.Value Then
  EndColumn = 7
 ElseIf Me.OptionButton_C5.Value Then
  EndColumn = 9
 ElseIf Me.OptionButton_C6.Value Then
  EndColumn = 11
 ElseIf Me.OptionButton_C7.Value Then
  EndColumn = 13
 Else
  EndColumn = 15
 End If
 For i = 0 To Me.ListBox1.ListCount - 1
  If Me.ListBox1.Selected(i) = False Then GoTo Line2
  If Me.CheckBox_Name.Value Then
   ActiveCell.Value = Me.ListBox1.List(i)
   ActiveCell.EntireRow.AutoFit
   ActiveCell.Offset(1, 0).Select
  End If
  ActiveSheet.Pictures.Insert(strFolder & Me.ListBox1.List(i)).Select
  サイズ調整
  If Selection.Width > MaxWidth((ActiveCell.Column - 1) / 2) Then MaxWidth((ActiveCell.Column - 1) / 2) = Selection.Width
  If Selection.Height > MaxHeight Then MaxHeight = Selection.Height
  If ActiveCell.Column = EndColumn Then
   ActiveCell.EntireRow.RowHeight = MaxHeight
   MaxHeight = 0
   If Me.OptionButton_RNone.Value Then
    Cells(ActiveCell.Row + 1, 1).Select
   ElseIf Me.OptionButton_R1.Value Then
    Cells(ActiveCell.Row + 2, 1).Select
   ElseIf Me.OptionButton_R2.Value Then
    Cells(ActiveCell.Row + 3, 1).Select
   Else
    Cells(ActiveCell.Row + 4, 1).Select
   End If
  Else
   ActiveCell.Offset(0, 2).Select
   If Me.CheckBox_Name.Value Then ActiveCell.Offset(-1, 0).Select
  End If
Line2:
 Next i
 If Me.CheckBox_Name.Value Then
  ActiveCell.Offset(1, 0).EntireRow.RowHeight = MaxHeight
 Else
  ActiveCell.EntireRow.RowHeight = MaxHeight
 End If
 列幅調整 EndColumn
 If Me.CheckBox_Name.Value Then Cells.Font.Size = Me.ComboBox_Name.Value
 Unload Me
 Application.ScreenUpdating = True
End Sub

▼ちゃぷ さん:
> 下記コードでExcel2000では使用可能でしたが、
> 2007では「このフォルダには画像がありません」
> と表示されてしまいます。
> どこを直したら良いか、教えて下さい。
> 宜しくお願いします。
>
>Option Explicit
>
>Public i As Long
>Public strFolder As String
>Public MaxWidth(8) As Long
>
>Sub 画像の一括挿入()
> On Error GoTo Fin
> Dim objFS As Object
> Dim objFolder As Object
> Dim objFile As Object
> Dim blnExist As Boolean
> Dim FontSize
> Dim PicLen
> Application.EnableCancelKey = xlDisabled
> strFolder = ""
> FontSize = Array(6, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24)
> PicLen = Array(60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390)
> Set objFS = CreateObject("Scripting.FileSystemObject")
> Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, "画像の入っているフォルダを選択してください", 0)
> If Not objFolder Is Nothing Then
>  strFolder = objFolder.Items.Item.Path
> End If
> If strFolder = "" Then Exit Sub
> If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
> Load UserForm1
> UserForm1.Label1.Caption = strFolder
> Application.ScreenUpdating = False
> For Each objFile In objFS.GetFolder(strFolder).Files
>  If 挿入可能(objFile) Then
>   UserForm1.ListBox1.AddItem objFile.Name
>   blnExist = True
>  End If
> Next
> For i = 0 To 11
>  UserForm1.ComboBox_Name.AddItem FontSize(i)
> Next i
> UserForm1.ComboBox_Name.ListIndex = 1
> For i = 0 To 11
>  UserForm1.ComboBox_PicLen.AddItem PicLen(i)
> Next i
> UserForm1.ComboBox_PicLen.ListIndex = 2
> Application.ScreenUpdating = True
> If blnExist Then
>  UserForm1.Show
> Else
>  MsgBox "このフォルダには画像がありません", vbInformation, "画像の挿入"
> End If
> Unload UserForm1
>Fin:
> Application.EnableCancelKey = xlInterrupt
>End Sub
>
>Function 挿入可能(objFile) As Boolean
> On Error GoTo Err1
> ActiveSheet.Pictures.Insert(objFile).Delete
> 挿入可能 = True
>Err1:
>End Function
6 hits

【75653】画像の一括挿入 ちゃぷ 14/6/5(木) 20:22 質問
【75654】Re:画像の一括挿入 γ 14/6/5(木) 22:13 発言
【75656】Re:画像の一括挿入 ちゃぷ 14/6/6(金) 20:57 質問
【75657】Re:画像の一括挿入 γ 14/6/6(金) 21:50 発言
【75659】Re:画像の一括挿入 ちゃぷ 14/6/7(土) 18:19 お礼

6677 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free