【エクセルVBA】任意の画像フォルダから、画像を貼り付けしたいです。
下記、やりたい事のページを見つけたのですが、画像貼り付けが横に貼り付けられてしまいます…。
http://club-vba.tokyo/vba-folda-gazou/
縦(列)に貼り付け、画像名が記載されている場所に画像を貼り付けできるようにしたいです。
初心者のため、どなたかアドバイス頂けると嬉しいです。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは
>画像貼り付けが横に貼り付けられてしまいます…。
縦一列に貼り付けたいのでしょうか?(折り返し無し?)
ご提示のコードでは、変数jが行番号を、kが列番号を意味していて、貼り付け先のセル位置は「j行k列」になっています。
コードの最後の方に、次のセル位置を決めるために、kに1加え(列番号を増加)、5を超えたら次の行になるように制御している部分がありますので、そこをお好みの内容に変えれば宜しいでしょう。
単純に1列に並べたいのであれば、「画像を一括挿入する列数の変更方法」に説明があるように、k>1に変えればよいです。
(もっと単純に、j+1するだけですみますけれど・・・)
ご返信ありがとうございます。
縦一列に折り返し無しで貼り付けたいです。
ーーーーーーーーーーーーーーーーーーーーーーーー
k = k + 1
If k > 5 Then ''←折り返しの列はここを変える
k = 1
j = j + 1
End If
ーーーーーーーーーーーーーーーーーーーーーーーー
↓ if k > 1Then へ変更
ーーーーーーーーーーーーーーーーーーーーーーーー
k = k + 1
If k > 1 Then ''←折り返しの列はここを変える
k = 1
j = j + 1
End If
ーーーーーーーーーーーーーーーーーーーーーーーー
こちらで実行したところ、画像名が記載されてない個所にも
画像が2つ貼り付けられてしまいました、、。
No.4
- 回答日時:
No.1です。
>画像名はマクロ実行時、エクセルに記載した状態となります。
無論そうなのでしょうけど、
・A列に画像名( & 拡張子?)があってB列に貼り付けたい
・A列に画像名があってそのセルに貼り付けたい
のかどうかと、画像ファイルを保存しているフォルダはマクロを実行するBookが保存されているフォルダとどう言った位置関係なのか?
同じフォルダでは管理が大変でしょうから、Bookが保存されているフォルダより下層(例:abc)フォルダなのか、Bookとは関係ない場所なのかが情報として必要ではないかと初級レベルなジジィは感じました。
No.5
- 回答日時:
No3です。
>やりたい事のページを見つけたのですが、
>画像貼り付けが横に貼り付けられてしまいます…。
もとのご質問がこの内容だったので、レイアウトだけの話かと思いましたけれど・・・
>画像名が記載されている場所に画像を貼り付けできるようにしたいです。
>同じ画像名がある場合、2つ目以降には画像が貼り付けられないみたいです…。
であるなら、ご提示のコードとなさりたいことの内容が同じというわけではありません。
それを参考にはできるでしょうけれど、なさりたいことに合った内容のものを、ゼロから作成した方が適切なものを早く得られると考えられます。
修正・変更していってもできないことはあいませんけれど、段々「わけのわからない」コードになっていきがちですので・・
そのためには、まず、ご自分がなさりたいことをきちんと整理することと、次に、それをどのように処理すれば良いかという手順を考えることが必要になってきます。
基本的に、プログラムは「やりたい内容」に合わせて作成するものであって、探して見つけるものではありません。
(まぁ、「汎用的な部品の流用」は、誰もがあたりまえに行っているでしょうけれど、それはあくまでも「部品」ですので。)
No.6
- 回答日時:
こんにちは
テストしているわけではないので、違っていたらごめんなさい。
同じ列で行を移動するのであれば、列方向を固定すれば良いですね
列番号の 変数 Kの値を決めているのは k = inp.Column のようです
その値を変えなければ良いので削除してよいのではないかと
End With
' k = k + 1
' If k > 5 Then ''←折り返しの列はここを変える
' k = 1
j = j + 1
' End If
Next i
不要なところと思われる部分を コメントアウトしています。
ループするごとに変数の値を変える部分
コメント(コードの無効)にした訳
列は移動しない ' k = k + 1
従って折り返しはない ' If k > 5 Then ''←折り返しの列はここを変える
列移動しないので初期値にする必要はない ' k = 1
行を+1する
If分岐処理の必要がないので 'End If
結果
繰り返し
単純に行方向をループごとに+1(下の行に)移動しています。
No.7
- 回答日時:
#6です
リンク先をよく見ると
If k > 5 Then
k = 1
これ違うのではないかと、、B列選択だと、、
k = k + 1
If k > inp.Column + 5 Then ''←折り返しの列はここを変える
k = inp.Column
j = j + 1
これで 5 を1とすれば一列対応(A列以外から初めてもOK)
多分、、
ご丁寧にありがとうございます…!
>これで 5 を1とすれば一列対応(A列以外から初めてもOK)
⇒試してみたのですが、折り返しされてしまいました><
そもそも、画像名に対して貼り付けられる画像も違うみたいで…
(質問する前にもっと試せばよかったのですが…)
なのでもう少し探ってみようと思いますので
こちらの質問は一旦終了しようかと思います。
お忙しい中回答いただいたのに申し訳ありません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- ヤフオク! デスクトップPCをヤフオクやメルカリに出品している人 1 2022/12/05 07:22
- Visual Basic(VBA) PowerPoint VBA で画像の鮮明度を変更する方法がわかりません 2 2023/03/24 13:34
- Excel(エクセル) 【VBA】 Alt+PrintScreenにてアクティブウィンドウのスクショを貼付する方法 4 2022/12/08 20:53
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Word(ワード) テキストデータのPDFをWordで開くとテキストが図として認識されてしまう 3 2023/01/24 11:38
- PowerPoint(パワーポイント) パワーポイント パワーポイントスマホ版についてです 画像を一度ページに貼った後にそのまま画質を変更す 1 2022/10/29 14:56
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
「段」と「行」の違いがよくわ...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
エクセルで住所を県と市・郡と...
-
Excelの行数、列数を増やしたい...
-
CSVファイルの「0落ち」にVBA
-
えABのある列って
-
エクセルマクロの組み方
-
データシートビューのタイトル...
-
エクセルで最初の行や列を開け...
-
エクセルマクロPrivate Subを複...
-
別のブック最終行最終列の次へ...
-
エクセル マクロ 範囲指定で...
-
Alt+Shift+↑を一括で行うには、...
-
エクセル マクロ 範囲の値を上...
-
土日の列幅の自動変更を教えて...
-
エクセルマクロで表の途中の集...
-
VBA
-
エクセルでセル12個間隔で合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
エクセルマクロの組み方
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
VBA
-
Excel文字列一括変換
-
エクセル 重複 隣の列 一番...
-
列方向、行方向の定義
-
Alt+Shift+↑を一括で行うには、...
-
VBAで結合セルを転記する法を教...
おすすめ情報
fujillinさん、ご返信ありがとうございます。
>縦一列に、折り返し無しで貼り付けたいです。
例えばA列1行目~A列10行目に画像名が記載されているなら、
同じようにA列1行目~A列10行目に画像を貼り付けたいです。
ーーーーーーーーーーーーーーーーーーーーーーーー
If k > 5 Then ''←折り返しの列はここを変える
ーーーーーーーーーーーーーーーーーーーーーーーー
↓
ーーーーーーーーーーーーーーーーーーーーーーーー
If k > 1 Then ''←折り返しの列はここを変える
ーーーーーーーーーーーーーーーーーーーーーーーー
に変えてみた所、縦に貼り付けはされたのですが、
画像名が記載されていない個所にも画像が貼り付けられてしまいました。。
今知ったのですが、同じ画像名がある場合、2つ目以降には画像が貼り付けられないみたいです…。
画像名が重複していても、全てに画像が貼り付けられるようにしたいです。