[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『縦列データの文字数字と図形を別シートの指定した場所に表示させたい』(yoyo)
教えて下さい。
文字や英数字は別シーに表示させられますが同時に図も一緒にがわかりません。
A列に5桁の数字(文字列として保存されている)が約1000件あります
B列にはAの数字に紐づくお客様名が約1000件
C列にも英数字が約1000件
D列にも英数字が約1000件
E列には図(.JPG)が約1000件
このデータを別シートの指定した場所に表示したい
Aは別シートのA1へ
Bは別シートのA3B3へ(A3B3は結合されたセル)
Cは別シートのA2へ
Dは別シートのB1B2へ(B1B2は結合されたセル)
Eは別シートのC1C2へ(C1C2は結合されたセル)
また、同じように列を変えて表示(次のスタートはD1へ)
そして、A列の数字をある場所に入力すると別シートに表示されるようになると嬉しいです。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
レイアウト 元データ
A B C D E
1 12345 お客様名1 MB1 987 図形1
2 98765 お客様名2 XZC 456 図形2
3 55555 お客様名3 VBN JKL 図形3
・
・
1000 22222 お客様名1000 HGF FFF 図形1000
表示させたい番号は98765 別シートレイアウト
A B C
1 98765
456 図形2 2 XZC 3 お 客 様 名 2
セル結合はなぜ必要なんですか。必要なんです。
別シートに貼り付けられた形で印刷し荷札となるため各セルで文字の大きさなど変えています。
A とか B とかは何ですか。
Aは上記記載の A列に5桁の数字(文字列として保存されている)が約1000件あります
Bは上記記載の B列にはAの数字に紐づくお客様名が約1000件
の事を言っていました。
列を変えてとは 最初にABC列を使い次はDEF列、その次はGHI列に表示させます。
D E F
1 55555
JKL 図形3 2 VBN 3 お 客 様 名 3
ある場所とは 別シートの使っていないセルです。例えばI列まで使っているのでJ列の1行目やK列の1行目
(yoyo) 2021/06/10(木) 17:44
こんなのは参考になりますでしょうか https://www.forguncy.com/blog/20170818_vlookup_picture (なるへそ) 2021/06/11(金) 10:36
やりたい事は似ていましたが違いました。
(yoyo) 2021/06/11(金) 17:59
(yoyo) 2021/06/12(土) 09:02
A B C D E
1 ID 客名 機種 番号 図形名 ← 項目名(適当)
2 12345 お客様名1 MB1 987 図形1
3 98765 お客様名2 XZC 456 図形2
4 55555 お客様名3 VBN JKL 図形3
表では見出しとも言います。
グラフでは項目名となります。
このように項目名を付けておけばピボットテーブルでの集計やグラフの作成が容易になります。
さらに実施していればスルーしてください。
>やりたい事は似ていましたが違いました。
模索中です。
画像は https://www.forguncy.com/blog/20170818_vlookup_picture の最初のように
一つのセルに張り付けてあるんですよね。
>列を変えてとは 最初にABC列を使い次はDEF列、その次はGHI列に表示させます。
横は3ブロックですが縦はどうなんですか。
別シートレイアウトと同じようなファイルがあったので移植試作中です。(図は別)
(な) 2021/06/12(土) 11:15
一つのセルに張り付けてあるんですよね。
図は2つのセルにまたがって表示しています。結合はされていません。
C列の1行目と2行目です。2ブロック目はF列、3ブロック目はi列
縦は3行で1ブロックの全9ブロックまであります。
(yoyo) 2021/06/12(土) 14:15
|[A] |[B] |[C]|[D]|[E] [1]|12345|富士花子|MB1|987|図形1 [2]|98765|海川泰平|XZC|456|図形1 [3]|55555|日本太郎|VBN|JKL|図形2 [4]| | | | |図形2 [5]| | | | |図形3 [6]| | | | |図形3
のように項目に対して図形がずれていくことになりますよね。
これであっていますか。
元テータは項目と図形がそれぞれ対応しているようになっていますけど。
>縦は3行で
3行ではなく3ブロックということですよね
縦3ブロック×横3ブロックの9ブロックでいいですね。
(な) 2021/06/12(土) 15:26
|[A] |[B] |[C]|[D]|[E] [1]|12345|富士花子|MB1|987|図形1 [2]|98765|海川泰平|XZC|456|図形2 [3]|55555|日本太郎|VBN|JKL|図形3 [4]|22222|あいうえ|123|ASD|図形4 [5]|33333|かきくけ|456|589|図形5 [6]|56123|さしすせ|JKI|BNM|図形6 貼付け側では2行にまたがってます。 縦3行9ブロックは、貼付け側の事です。 全部で27ブロックになります。
(yoyo) 2021/06/12(土) 17:18
大変長らくお待たせしました。
たまたま果物の画像があったので利用してみました。 図形1〜3はその画像が入っています。
【1】図形に名前を付ける 1) F列に名前を入力する 2) 名前をコピーする 3) 画像を選択する 4) 名前ボックスに貼り付けて Enter を押す。
シート名 AA
|[A] |[B] |[C]|[D]|[E] |[F] [1]|12345|富士花子|MB1|987|図形1 |りんご [2]|67890|海川泰平|XZC|456|図形2 |メロン [3]|45678|日本太郎|VBN|JKL|図形3 |バナナ
【2】数式とブロックのコピー 1) A1:C4 の外周に罫線を引く。これを1ブロックとする 2) 数式を入れ終わったら A1:C4 をコピーしていく 3) 3ブロックまでコピーしたら1〜3ブロックまとめてコピーして 下の方へ貼り付けていく。 4) 最後に罫線を削除する ※ 罫線は貼り付けするときにセル位置を間違えないようにするためです。
シート名 BB
|[A] |[B]|[C] |[D] |[E]|[F] |[G] |[H]|[I] [1]| 12345|987|りんご | 67890|456|メロン | 45678|JKL|バナナ [2]|MB1 | | |XZC | | |VBN | | [3]|富士花子| | |海川泰平| | |日本太郎| |
A2=IF(A1="","",VLOOKUP(A1,AA!$A$1:$D$3,3,0)) A3=IF(A1="","",VLOOKUP(A1,AA!$A$1:$D$3,2,0)) B3=IF(A1="","",VLOOKUP(A1,AA!$A$1:$D$3,4,0))
※C1は実際はりんごの画像です。以下同じ
【3】VBE を起動する。(Alt+F11) 1) 標準モジュール Module1 に次のコードを張り付ける。 Sub Paste_1() '※1 1ブロック Dim aa As String Sheets("AA").Select '※2 シート名 aa = [VLOOKUP(BB!A1,A1:F3,6,0)] '※3 検索値 ActiveSheet.Shapes(aa).Select Selection.Copy Range("A1").Select '注 Sheets("BB").Select '※2 シート名 Range("C1").Select '※4 画像貼り付け位置 ActiveSheet.Paste Dim c As Range Set c = Range("C1") '※4 画像貼り付け位置 With ActiveSheet.Shapes(aa) .Top = c.Top + (c.Height - .Height) / 2 '※5 画像中央配置 .Left = c.Left + (c.Width - .Width) / 2 End With Range("A1").Select '注 End Sub
サイトより引用 '注 VBAでは、画像や図形のSelectを解除するためのメソッドは設定されていません。 '注 そのかわり、Selectされている図形の選択を解除するためには適当なセルを '注 選択することにより、Selectを解除することができます。
Sub Paste_2() '※1 2ブロック Dim aa As String Sheets("AA").Select '※2 シート名 aa = [VLOOKUP(BB!D1,A1:F3,6,0)] '※3 検索値 D1 に変更 ActiveSheet.Shapes(aa).Select Selection.Copy Range("A1").Select '注 Sheets("BB").Select '※2 シート名 Range("F1").Select '※4 画像貼り付け位置 F1:CF2 に変更 ActiveSheet.Paste Dim c As Range Set c = Range("F1") '※4 画像貼り付け位置 F1:CF2 に変更 With ActiveSheet.Shapes(aa) .Top = c.Top + (c.Height - .Height) / 2 '※5 画像中央配置 .Left = c.Left + (c.Width - .Width) / 2 End With Range("A1").Select '注 End Sub Sub Paste_3() '※1 3ブロック Dim aa As String Sheets("AA").Select '※2 シート名 aa = [VLOOKUP(BB!G1,A1:F3,6,0)] '※3 検索値 G1 に変更 ActiveSheet.Shapes(aa).Select Selection.Copy Range("A1").Select '注 Sheets("BB").Select '※2 シート名 Range("I1").Select '※4 画像貼り付け位置 I1:I2 に変更 ActiveSheet.Paste Dim c As Range Set c = Range("I1") '※4 画像貼り付け位置 I1:I2 に変更 With ActiveSheet.Shapes(aa) .Top = c.Top + (c.Height - .Height) / 2 '※5 画像中央配置 .Left = c.Left + (c.Width - .Width) / 2 End With Range("A1").Select '注 End Sub
2) シート名 入力 を右クリックしてコードの表示をクリックする 次のコードを張り付ける
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Range("C1"), Target) Is Nothing Then '※6 画像を張り付ける位置 Call Paste_1 '※7 マクロ名 End If If Not Intersect(Range("F1"), Target) Is Nothing Then Call Paste_2 End If If Not Intersect(Range("I1"), Target) Is Nothing Then Call Paste_3 End If End Sub
【4】使用方法 1) 客先番号を入力する → 客先のデータが転記される 2) 画像貼り付け位置をダブルクリックする → 客先番号の画像が貼り付けられる ※ データの再入力時は画像を消去して再度ダブルクリックすること
【5】ブロックごとの追加に関して(1ブロックをコピーしていく) シート名 BB (画像を張り付けるシート)に対して変更する ・※1 1ブロック マクロ名は末尾の数字を書き換えてください。 ・※2 シート名(1ブロックをコピーしたらあとは必要ない) 実際のシート名にしてください。 ・※3 検索値 客先番号入力セルを指定してください。 ・※4 画像貼り付け位置 貼り付けるセルを指定してください。 ・※6 画像を張り付ける位置 貼り付けるセルを指定してください。 ・※7 マクロ名 マクロ名は末尾の数字を書き換えてください。 ※※ ここでのシート名は レイアウト 元データ → AA 表示させたい番号は98765 別シートレイアウト → BB としています。
とりあえず3ブロックで試していただいて良ければブロックを追加していただければと思います。 約1000件あるとのことですので図形の名前については大変だと思いますががんばってください。
最後に サイトで紹介されているもののほとんどが表示切替が主流でした。 サイトを巡っても今回のケースのようなものに出会うことができませんでした。 今回はいろいろな面から勉強させてもらいました。 VBA も苦手なもんですが何とか形にすることができました。
(yoyo) 2021/06/21(月) 09:42
> 約1000件あるとのことですので図形の名前については大変だと思います 名前をつけるだけなら、名前の列と図の列を全部範囲選択して選択範囲から作成(Ctrl+Shift+F3)で 自動的に名前はつけられますが、本当に図(.JPG)が約1000件あるんでしょうか。 それなら、VBAで写真を貼り付けしてるのかな?とか考えてコメントするのに二の足を踏んでしまいますが。
よく似た感じでA4シート21ブロックのもの(図なし)は作ったことがあるので試してみたのですが
(なるへそ)さんが紹介されているサイト
https://www.forguncy.com/blog/20170818_vlookup_picture を参考にすればVBAでなくてもできました。
>文字や英数字は別シートに表示させられますが こちらはできているとして >同時に図も一緒にがわかりません。 こちらのサイトにあるように参照する計算式を画像に設定を27個作らないといけませんが。 一個一個の図に名前を付ける必要はありません。 アイコン画像で試してみて22MBにはなりましたけど。。。 今更ですがご参考になれば。
(檸檬) 2021/06/27(日) 17:03
>一個一個の図に名前を付ける必要はありません。 私へのこじつけですか。 (な) 2021/06/27(日) 20:46
>私へのこじつけですか。 とんでもございません。 (なるへそ)さんが紹介されているサイトのやり方がそうなので書いただけです。
わたしも、最初に試したやり方は図に名前をつけてからINDIRECTで呼び出していたので。。。
参照する計算式を画像に設定を27個つくるほうが手間だったりしますし。
VBAはわかりませんので。
お気を悪くされませんよう。。。
(檸檬) 2021/06/27(日) 21:24
もう一度サイトを除いてみました。確かにVBAのVも出てこないですね。 大変失礼しました。
一個一個の図に名前を付けた理由は 【同時に図も一緒にがわかりません。 】これを 【12345 お客様名1 MB1 987 図形1 (名前)】をワンセットとして お客データと図形を紐づけて VLOOKUP で呼び出すためです。
トピ主さんがワンセットとして考えているかどうかですけどね。
(な) 2021/06/27(日) 22:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.