リスト順位通りに画像も並べ替えるマクロ

このQ&Aのポイント
  • 質問文章の要点は、業務でリストの順位に合わせて画像を並べ替えたいということです。
  • 現在は手動で並べ替えているため、マクロを使ってこの作業を自動化したいとのことです。
  • 質問者のファイルは結果シートとdataシートに分かれており、dataシートに順位表を貼り付けています。また、同着を同じ列に並べることも可能であれば行いたいとのことです。
回答を見る
  • ベストアンサー

リスト順位通りに画像も並べ替えるマクロ

マクロ勉強中の初心者です。 業務で、金額の安い順に順位の付いたリストを管理しています。 それぞれの順位ごとに対応する画像があり、 これを順位の変動に合わせて毎日手動で並べ替えているのですが この並び替え作業をマクロでできるのでしょうか? 1位 ¥1,900 りんご  2位 ¥2,000 みかん 3位 ¥2,100 ぶどう 4位 ¥2,100 メロン 例えば 画像1枚1枚に、上記でいう【りんご】【みかん】という名前を定義していくと リストを基準に画像も自動で並べ替えられるのかな?と思っていたのですが 行き詰ってしまいました。 シートのサンプルを添付します。 今作業しているファイルは 結果シートとdataシートに分かれており、 dataシートに別シートで集計した順位表を貼り付けて連動させています。 なので、貼り付けた段階で一応数字だけは最新になります。 また、もし可能でしたら 同着を同じ列に並べる?ということも自動でできるのでしょうか? ここは最後に手作業してもいいので とにかく【画像をリストの順位で並び替える】ことを自動化したいです。 OSはwindows10 エクセルはfor office 365 です 知識が少なく恐縮ですが お手すきでご教示頂けると幸いです。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.1

画像のセルにデータがあるとして以下のような方法でいかがですか。 実際の数値は本来の場所に合わせてください。 また画像がない場合の処置はしていません。 Sub Test() Dim SName As String Dim i As Long, j As Long j = 1 For i = 8 To 11 SName = Sheets("data").Cells(i, "D").Value With Sheets("結果").Shapes(SName) .Top = Cells(j, "A").Top .Left = Cells(j, "A").Left End With j = j + 1 Next End Sub

その他の回答 (2)

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

結果シートのフォームを多少変更しても良いのであれば、以下のページにINDEX関数とMATCH関数を使って画像を表示する方法が紹介されています。 https://www.forguncy.com/blog/20170818_vlookup_picture

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

ワークシート上に画像を並べたいということか。 (1)画像のLeft値、 Topを値を、Heightの値や余白を考慮して位置を計算して決めるか、 (2)各セルの行の高さをバラバラにしたり、変えない前提で 例えばRange("B5").Topといった位置に頼るか2通りある。 しかし、これは初心者の課題ではない。エクセルのコアな使い方には入らないだろう。 ーー しかしWEBを調べればすぐ http://officetanaka.net/excel/vba/tips/tips174.htmhttp://officetanaka.net/excel/vba/tips/tips174.htm のように判る話。 後者は上記に載っている Sub Macro5() ActiveSheet.Pictures(1).Top = Range("B3").Top ActiveSheet.Pictures(1).Left = Range("B3").Left End Sub のようなやり方。 ーーー Sub Macro9() With ActiveSheet.Pictures.Insert("C:\Work\Sample1.jpg") .Top = Range("B3").Top .Left = Range("B3").Left .Width = Range("B3:C3").Width End With End Sub とあるのが挿入までのコード。 ーー まず「りんご」「みかん」などの画像ファイル名を、割り出せるようにシート (品名のある行の同行に)、データ作っておくのが、普通だろう。 そして順位に従って、行的に等間隔(?)の同列のセルに置いてゆく荷が普通だろう。その際は、算数の「数列」の考えを使う必要があろう。第n位はどのような行に来るか計算できるかな?画像のサイズにばらつきがあればどうする?

関連するQ&A

  • エクセルマクロでシート名を条件にする方法

    エクセルマクロで、 たとえば、「りんご」「ぶどう」「みかん」「いちご」「なし」という5つのシートがあって、 シート名が「りんご」「みかん」「いちご」のシートはシートの色を赤にして、その他のシートはシート色を青にする、といったことをしたいのですが、マクロではどのようにしたらよいのでしょうか。 実際にはシートが20シートあり、手処理で色を変更するという単純作業をやっているため、自動化したいと考えています。 マクロについては初心者のため、自分ではどのように書いたらよいかわかりませんので、どうかよろしくお願いいたします。

  • ピポットテーブルのマクロについて

       A列 1  果物 2  りんご 3  みかん 4  みかん 5  りんご 6  メロン 7  メロン 8  ぶどう 9  りんご 10 みかん 11 りんご     |     | 以下名称が続きます ExcelのSheet1にある上記のようなデータを、Sheet2のA1に対して下記のような形式で 出力するのをマクロ化したいと考えております。 果物   集計 ぶどう  1 みかん  3 メロン  2 りんご  4 総計  10 通常通りピポットテーブルを行うのをマクロで記録した場合に、 下記のようになりますが、上手く実行できません。 Sub Macro4() Columns("A:A").Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!C1").CreatePivotTable TableDestination:="[Book1.xls]Sheet2!R1C1", _ TableName:="ピボットテーブル3", DefaultVersion:=xlPivotTableVersion10 With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("果物") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル3").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル3").PivotFields("果物"), "データの個数 / 果物", xlCount Range("D6").Select End Sub 列の名称は“果物”以外でも実行でき、A列の全てのデータをピポットテーブルで 集計できるようにしたいのですが、初心者のためなかなか上手く実行できません。 どなたか教えていただけますと幸いです。

  • 二つのリストから店舗別リストを作成

    お世話になっております。 出来ればマクロで在庫リスト、売上リストから店舗別のリストを作成したいのですが店舗リストに纏めるときに在庫リストで売上リストに同じ品目が無い時に空白が出来てしまい上手く揃えることが出来ません。 ご教授お願い致します。 在庫リスト 売上リスト 品目  鹿児島  福岡           品目  鹿児島  福岡 メロン   1    2              いちご   1    2 みかん   3    1             りんご    1    1 りんご    1    1              なし     1    1  なし     1    1             みかん    3    1 いちご    1    1             パイン    1    2 これらのリストを下記のように作成したいのです。 鹿児島   福岡 品目   売上   在庫           品目   売上   在庫 いちご   1    1             いちご  1    2        なし     1    1             なし    1    1  パイン    1    0             パイン  2    1 みかん    3    3            みかん  1    1 メロン     1    0            メロン   0    2 りんご     1    1             りんご  1    1 自分でマクロを作成してみて品目の順は並び替えを使用すれば問題ないのですが、二つのリストにそれぞれ無い品目があったりなかったりする時に無いほうに追加したりして揃える事がどうしても出来ませんでした。 宜しくお願い致します。

  • エクセル2010で 項目の抜き出しをしたい

    エクセル2010で 項目の抜き出しをしたいです。 たとえば、A列に りんご りんご バナナ トマト りんご バナナ みかん トマト メロン バナナ リンゴ みかん ぶどう とデータが入っているとき、これらのデータには、 トマト バナナ りんご リンゴ みかん メロン ぶどう という種類のデータが入っているということを簡単に表示する方法が知りたいです。 どうぞよろしくお願いします。

  • マクロについて質問です。

    A B C   1 3 りんご 2  赤 3 くだもの 4 6 みかん 5 オレンジ 6 くだもの 7 9 ぶどう 8  紫 9 くだもの というデータがシート1にあったとして、シート2のa2セルに6と入力すると以下のようにa5セル以降に抽出し、6という入力を消すと抽出したものも消えるようなマクロを教えていただきたいです。どうかよろしくお願いします。 6 みかん  オレンジ  くだもの

  • エクセルの順位付けについて

    Sheet1に以下のデータがあります。      項目A 項目B 項目C 項目D 合計   順位 みかん   5   0.22    3    2  10.22    6 りんご   3   1.2    1    3   8.2     3 ばなな   4   2.2    3    1  10.2     5 いちご   1   1.5    2    3   7.5     1 ぶどう   2   1.5    3    1   7.5     1 れもん   3   2.5    1    3   9.5     4 ちなみに、項目A~Dの数値は、パラメータ(ウェイト)を変更する ことによって、変わります。したがって、順位も変わります。 そこで、Shee2では、パラメータを変更するたびに変わる順位順に 出したいのですが、どのようにすればよいでしょうか。 ご教示頂ければ幸いです。 最終形のイメージは以下ののとおりです。 順位      項目A 項目B 項目C 項目D   合計    1  いちご   1   1.5    2    3     7.5  1  ぶどう   2   1.5    3    1     7.5  3  りんご   3   1.2    1    3     8.2  4  れもん   3   2.5    1    3     9.5  5  ばなな   4   2.2    3    1    10.2    6  みかん   5   0.22    3    2    10.22  なお、順位のところは、1、2、3・・・と順番になるケースもあれば 1、2、2、4となるケースもあるかと思っています。 よろしくお願いします。

  • エクセルマクロ◇別シートで個人ごとに数値の集計

    EXCEL2003です。 以下のように、名前・個数・商品名(名前と商品名は重複あり)が列記されている EXCELのデータを、別シートで商品名の個数を個人ごとに集計したいと思っています。 ◇元データ◇ 名前 個数 商品 A子  2  りんご A子  1  りんご A子  3  みかん A子  2  みかん A子  1  メロン B子  1  みかん B子  1  みかん B子  2  メロン B子  4  キウイ ◇集計データ◇ 名前 りんご みかん メロン キウイ A子  3   5    1 B子      2    2   4 最初ピボットテーブルを使えばいいかと思っていたのですが、 これ以外にも元データから取得する値が出てくる予定のため、 できればマクロを組んで別シートに集計したいです。 よろしくお願いいたします。

  • エクセルで範囲内のデータを別シートにうつしたい

    エクセルで特定の範囲内の数値にあてはまるデータを別のシートに新たな表として作成したいのですが、簡単な方法があれば教えてください。 例えば Sheet1   A   B     C  1 25  ミカン   3000 2 30  リンゴ   4500 3  5  メロン   9800 4 17  ブドウ   1800 5 50  バナナ  1000 このようなデータを次のような表にしたいのです。 A列の数値が10~30のみ行ごと抜粋する Sheet2   A   B     C  1 25  ミカン   3000 2 30  リンゴ   4500 3 17  ブドウ   1800  よろしくお願いいたします。

  • 複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

    複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。 マイドキュメントのデーターというフォルダ内に エクセルファイルA(シート名みかん) エクセルファイルB(シート名りんご) エクセルファイルC(シート名バナナ) エクセルファイルD(シート名ぶどう) エクセルファイルE(シート名いちご) があります。 雛形は同じです。すべてA列~F列までデータが入っています。 行数はファイルによって違います。 また毎日自動で上書き更新され、毎日行数が変わります。 エクセルファイルZがあります。シートが7個あります。 ・変換 ・集計 ・みかん ・りんご ・バナナ ・ぶどう ・いちご エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。) マイドキュメントのデーターフォルダも開いておきます。 エクセルファイルZにおいて「マクロの記録」を起動。 エクセルファイルZの 【みかん】~【いちご】までの5シートを全データDELETEします。 開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。 (タスクバーにいます) ファイルAのシート【みかん】の全データ選択して エクセルファイルZの【みかん】というシートのA1セルにカーソルを あわせて貼り付けします。 開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。 (タスクバーにいます) ファイルBのシート【りんご】の全データ選択して エクセルファイルZの【りんご】というシートのA1セルにカーソルを あわせて貼り付けします。 これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。 エクセルファイルZにおいて「マクロの記録」を終了させます。 マクロができあがりました。 ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。 エラーにはなりませんが、ファイルZの5種類各シートに ファイルA~Eのデータが貼りつきません。 何か無理な事をしているのでしょうか? もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を 【みかんZ】~【いちごZ】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。

  • 【EXCEL2000】2つのリストの合計を出すには?

    リストA リンゴ 3 みかん 5 バナナ 2 スイカ 3 リストB りんご 2 メロン 4 バナナ 3 いちご 2 ↑のような2つのリストがあるとして、 リストC りんご 5 みかん 5 バナナ 5 スイカ 3 メロン 4 いちご 2 リストA・Bの合計がリストCのようにするにはどのような関数を使えばいいかお解りになる方教えてください。 判りづらい質問で申し訳ありません。m(_ _)m ※品名と数量は別セルです。

専門家に質問してみよう