- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- エクセルでのマクロ:画像の貼り付け
お世話になります。 まだマクロについて不勉強ですが、表記のことができるかどうか気になっています。 お教えください。 1 エクセルの列に A B Cと表記しておく 2 「A」「B」「C」という名前のフォルダから画像を取ってきてA BCの列の下に貼り付ける 3 新しく「D」というフォルダができた場合、エクセルの列にDを追記してさらに貼り付けていく (クリックを押せば自動的に貼り付けれるでもよいです) できるできないでもいいのでお教えください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで同じ大きさの画像だけを並び替えるマクロ
仕事でエクセルのシートに600枚ほどの写真画像を並べる作業をしなければなりません。 画像のサイズは2種類あり、 ・大きなサイズの画像(高さ5.73cm、幅7.51cm)が2枚、 ・小さなサイズの画像(高さ4.31cm、幅5.77cm)約50枚(以下n枚とします) を1つのsheetに配置します。 このとき、大きなサイズの画像はシートの右上に並べ、小さなサイズの画像は横4枚×縦(n/4)+1列に並べなければなりません。シート上での配置のイメージは下のような感じです。 ●:大きなサイズの画像 ☆:小さなサイズの画像 --:シートの範囲だと思ってください ----------------------------- ●● ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ・ ・(途中省略) ・ ☆ ☆ ☆ ☆ ----------------------------- シート右上に配置されてある大きなサイズの画像配置を変更せずに、小さなサイズの画像のみを選択して横4枚の格子状に並べるにはどのようなマクロを組めばよいでしょうか? 過去の質問QNo.3864319を参考にしましたが、この方法では同じサイズの画像すべてを並べ替えているように設定されてあります。したがって、このマクロを実行すると、位置を変えたくない大きなサイズの画像も含めて格子状に並べ替えられてしまうため、困っています。並べ替えをしなければならない画像は3000枚くらいになると思われるので、このマクロを完成させてしまわないと作業が締め切りに間に合わないのでとっても困っています。 どうかよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルでマクロを使って画像を貼り付ける
エクセルで画像を扱うことになり、関数では行き詰ってしまったので質問です。 過去に同じような質問をされているのをみつけましたが、VBAの知識がないために 自分に必要な改良ができませんでした。 やりたいことは、次の通りです。 1.セルE10に"P"の文字が入っていたら、処理はしない。 2.セルG10の文字列と同じファイル名のpngの画像を、K10に張り付ける。 3.E列(またはG列)が空白になったら、終了 画像ファイルは、エクセルファイルが保存されているフォルダに、画像というフォルダを作って、 その中に保存したいです。(フォルダ名は、英字でも構いません。) G列は名前なので、現状は氏と名の間に空白が入っています。 画像データのファイル名にも同じように空白を入れてありますが、空白があっても大丈夫でしょうか。 初めての質問なので、失礼があるかもしれませんが、宜しくお願いします。
- 締切済み
- Excel(エクセル)
- 画像をエクセルに貼り付けるマクロ
画像をエクセルに貼り付けるマクロ 複数の画像をエクセルに貼り付ける機会が多く、下記のマクロを利用しています。これは他人が作ったものでその人が今はいないため修正の仕方がわかりません。 これだとヨコに2個の画像で縦方向に画像が貼り付けられます。これをヨコに3個の画像で 縦方向に画像を貼り付けるようにしたいのですが、方法がわかりません。 お詳しい方どうかよろしくお願いします。 <現在> 1 2 3 4 5 6 <やりたいこと> 1 2 3 4 5 6 7 8 9 Sub Insertpic() Dim strFilter As String Dim Filenames As Variant Dim pic As picture Dim sc As Range Dim i As Long Dim j As Long Dim k As Long '「ファイルを開く」ダイアログでファイル名を取得 strFilter = "画像ファイル(*.jpg;*.jpeg;*.gif;*.bmp;*.png),*.jpg;*.jpeg;*.gif;*.bmp;*.png" Filenames = Application.GetOpenFilename( _ FileFilter:=strFilter, _ Title:="画像の挿入(複数画像が選択できます)", _ MultiSelect:=True) If Not IsArray(Filenames) Then Exit Sub ' 貼り付け開始セルを選択 'ActicveCellRange("C5").Select ' マクロ実行中の画面描写を停止 Application.ScreenUpdating = False ' 順番に画像を挿入 For i = LBound(Filenames) To UBound(Filenames) Set pic = ActiveSheet.Pictures.Insert(Filenames(i)) '画像の大きさ指定 With pic.ShapeRange .Height = 120# .Width = 175# .Rotation = 0# End With ' 次の貼り付け先を選択 Select Case i Mod 2 Case 1 '奇数回目 ActiveCell.Offset(, 4).Select Case 0 '偶数回目 ActiveCell.Offset(11, -4).Select End Select Set pic = Nothing Next i ' 終了 Application.ScreenUpdating = True MsgBox i - 1 & "枚の画像を挿入しました", vbInformation End Sub
- ベストアンサー
- オフィス系ソフト
- これはマクロなんでしょうか?*エクセル*
エクセルを開いて、日付を変更すると、該当する日付部分が自動的に変わってくれるというやつです。 ↑分かりにくかったらまた追記します。 詳しい方いらっしゃいましたら助言いただけないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelへ画像追加
OLEオートメーション(タイプライブラリ使用)で、Excelへ画像を表示させたいのですが、実現可能でしょうか? また、どのようにすればよいのでしょうか? よろしくお願いします。 環境:Excel2000 + VC6 + Win2k
- 締切済み
- C・C++・C#
- エクセル マクロで困っています。画像がずれます。
御質問させて頂きます。 エクセルで、マクロを使って画像を貼り込んでいます。 初心者ながらにいろいろ調べまして、マクロを使って、100枚ほどの写真をシートに貼り付ける作業をしています。 ですが、何を間違っているのか、だんだん写真がずれてきます。 セルの高さに合わせて画像を挿入してるつもりなんですが、どうやらあっておらずズレてきています。 初心者で本当にすみませんが、ご指導ください。。。 宜しくお願い致します。 Sub 複数の画像を挿入() Dim strFilter As String Dim Filenames As Variant Dim PIC As Picture ' 「ファイルを開く」ダイアログでファイル名を取得 strFilter = "画像ファイル(*.jpg;*.jpeg;*.gif;*.bmp;*.png),*.jpg;*.jpeg;*.gif;*.bmp;*.png" Filenames = Application.GetOpenFilename( _ FileFilter:=strFilter, _ Title:="図の挿入(複数選択可)", _ MultiSelect:=True) If Not IsArray(Filenames) Then Exit Sub ' ファイル名をソート Call BubbleSort_Str(Filenames, True, vbTextCompare) ' 貼り付け開始セルを選択 'ActicveCellRange("C5").Select ' マクロ実行中の画面描写を停止 Application.ScreenUpdating = False ' 順番に画像を挿入 For i = LBound(Filenames) To UBound(Filenames) Set PIC = ActiveSheet.Pictures.Insert(Filenames(i)) '------------------------------------------------------------- ' 画像の各種プロパティ変更 '------------------------------------------------------------- With PIC .Top = ActiveCell.Top ' 位置:アクティブセルの上側に重ねる .Left = ActiveCell.Left ' 位置:アクティブセルの左側に重ねる .Placement = xlMove ' 移動するがサイズ変更しない .PrintObject = True ' 印刷する End With With PIC.ShapeRange .LockAspectRatio = msoTrue ' 縦横比維持 ' 画像の高さをアクティブセルにあわせる ' 結合セルの場合でも対応 .Height = ActiveCell.MergeArea.Height End With ' 次の貼り付け先を選択(アクティブセルにする)[例:5個下のセル] ActiveCell.Offset(1).Select Set PIC = Nothing Next i ' 終了 Application.ScreenUpdating = True MsgBox i - 1 & "枚の画像を挿入しました", vbInformation End Sub
- ベストアンサー
- オフィス系ソフト
- エクセル マクロ 画像についての質問です。
エクセル マクロについての質問です。 下記のコードでセルに画像を合わせて貼り付け、表を作成しています。 が、このコードだと画像の保存先を移動させると画像が表示されなくなり、分類でフィルターをかけるとバラバラの違う画像が表示されてしまったりして困っています・・・。 どなたか良いご意見を頂ければと思い、投稿しました。よろしくお願いします! Sub PictFit() Dim PicFile As String Dim Pic As Picture PicFile = Application.GetOpenFilename() '画像のパスを取得 If PicFile = "False" Then Exit Sub Set Pic = ActiveSheet.Pictures.Insert(PicFile) '画像を貼り付ける With Pic .Height = ActiveCell.MergeArea.Height '画像の高さ .Top = ActiveCell.Top '画像の上位置を変更 .Left = ActiveCell.Left + (ActiveCell.MergeArea.Width - .Width) / 2 '画像の横位置を変更(セル幅中央に画像中央) End With End Sub
- ベストアンサー
- Visual Basic
- エクセル マクロ フルパスから画像を読み込む
数日前からマクロを勉強し始めた初心者です。 下の画像のような表を作っています。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ■Sheet1 …「商品在庫一覧」 ■Sheet2 …「印刷用シート」※必要なものだけをSheet1から呼び出し、印刷用として同じシート上で並べ替える(図では‘行5’から下が印刷範囲です) ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ Sheet2のD列(D1~D3‥)に商品画像のフルパスを呼び出し、「写真を配置」のボタンを押すと、印刷範囲の‘行7’のセルに自動で画像が配置されるようにしたいです(‘あ’のパスの画像を‘い’のセルに)。 画像を配置するような関数はなく、マクロでなければ実現できないということで、似ている条件の構文をアレンジして‥と思ったのですが、マクロのことをきちんと理解できていないためうまくいきません。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ ■「D1」のパスから「A7」に画像を配置する構文を教えていただけますでしょうか。 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 初歩的なことを聞いてすみません。 完成までの残り時間があまりないもので、質問させていただきました。 どなたかお暇がありましたら、お願いいたします。
- ベストアンサー
- その他MS Office製品
- Excelマクロ 選択画像の大きさを100%に
貼り付けた画像で、選択したものの画像の大きさを、元のサイズ100%にしたいです。 For Each shp in selection shp.ScaleHeight 1, msoTrue というようにしたいのですが、うまくいかず、手詰まりになりました。 簡単なサンプルを作って頂けないでしょうか。
- ベストアンサー
- その他MS Office製品
- 私は現在高校二年生で、通信制高校に通っています。そこで同じ部活の先輩に惹かれました。
- 彼はとても優しい人で、体育の授業で一緒になったことがきっかけで心を動かされました。
- また、彼は細かい変化に気づいてくれることも魅力的で、私自身の成長を感じます。
お礼
SI299792さん ありがとうございます。 実際のデータで試してみました。 ワークエリアもB,C列に持ってきてすっきりしました。 計算時間も早く完璧でございます。 今回いろいろご対応していただき感謝いたします。