No.2ベストアンサー
- 回答日時:
Option Explicit
Sub Sample()
Dim Sh桃 As Worksheet
Set Sh桃 = Workbooks("桃ブック").Worksheets("桃シート")
Dim Col種別 As Long
Col種別 = Sh桃.Rows(1).Find("種別", LookIn:=xlValues, LookAt:=xlWhole).Column
Dim Col建物 As Long
Col建物 = Sh桃.Rows(1).Find("建物名", LookIn:=xlValues, LookAt:=xlWhole).Column
Dim Colかな As Long
Colかな = Sh桃.Rows(1).Find("建物かな", LookIn:=xlValues, LookAt:=xlWhole).Column
Dim r桃Max As Long
r桃Max = Sh桃.Cells(Sh桃.Rows.Count, Col種別).End(xlUp).Row
Dim Sh青 As Worksheet
Set Sh青 = Workbooks("青ブック").Worksheets("青シート")
Dim Row青 As Long
For Row青 = 2 To Sh青.Cells(Sh青.Rows.Count, "E").End(xlUp).Row
Dim 建物名 As String
建物名 = Sh青.Cells(Row青, "E").Value
Dim Row桃 As Long
For Row桃 = 2 To r桃Max
If Sh桃.Cells(Row桃, Col種別).Value = "共通" Then
If Sh桃.Cells(Row桃, Col建物).Value = 建物名 Then
Sh青.Cells(Row青, "F").Value = Sh桃.Cells(Row桃, Colかな).Value
Exit For
End If
End If
Next Row桃
Next Row青
End Sub
No.6
- 回答日時:
>①はこのまま客先に提出するため見出し含めフォーマットの変更不可
提出方法にちょっと気になる点が。
Excelブックで提出したら数式が崩れるから、紙に印刷なりPDFファイル等で提出なのかな?
それなら①にVBAを仕込んで②がどのように(ブックがね)変化しても仮にシート数が1つで名前に変更がなければ、フィールド名『建物かな』で空白ではない場合に『建物名』と対になるデータを抜き出しておく。
あとは①の『建物名』の列は変更ないって事なので『よみがな』として書き加えれば良いのかな?
でも今回の例題が『田中団地』のみであるけど②のシートでは『建物名』は1つしかないの?って部分が気になりました。
回答も出ているので多分私の心配性なだけかも(読解力不足)とも思えますから、スル~されて構いません。
No.5
- 回答日時:
>ブック名はそれぞれ①と②という形で大丈夫です。
>青のブックは開かれますがピンクは閉じています。
ブック名は①.xlsm、②.xlsxと理解しました。
②.xlsxをオープンするには、それがどこのフォルダに格納されているのかを
指定する必要があります。
①.xlsmと同じフォルダでしょうか。その場合は、格納フォルダ名を意識する必要はありません。
①.xlsmと異なるフォルダなら、マクロ内で明示的にそのフォルダを指定してオープンします。(こちらでテストしたフォルダ名になるので、あなたの環境のフォルダ名にあとであなたが修正する必要があります)
お手数をお掛けして申し訳ありません。色々とありがとうございます。
今回、よみがなの引っ張り方を伺いたかっただけですので、その他情報諸々記載しておらず申し訳ありません。
No.4
- 回答日時:
こんにちは。
項目のタイトルには○○IDとかがあるのに、建物は名称で検索しなければならないというのは何かがおかしい。
管理体系を見直された方が良さそうに思います。
そうすれば、ご質問のようなことも必要なくなるのではないかと推測します。
ブックの関係やシートの名称などが曖昧なので、勝手に想定しました。
・同一ブック内にあるものとし、「②見出しピンクのシート」の名称をSheet1とします。
◇関数の場合
「①青の見出しのシート」のF2セルに
=IFERROR(INDEX(Sheet1!F:F,AGGREGATE(15,6,ROW(B$2:B$99)/(Sheet1!B$2:B$99="共通")/(Sheet1!D$2:D$99=E2),1)),"")
の式を入力し、下方に適当なところまでフィルコピー。
◇マクロの場合
すでに回答が出ているようなので省略。
別法として、「マクロの記録」を利用して
・上記を操作
・F列を「コピー」-「値をペースト」(←必要なければ不要)
の操作を要領よく行えば、数行のマクロで可能になるものと想像します。
※ 画像の添付がどうしてもできないようになってしまったので、文章のみで失礼。
ありがとうございます!質問に書いた通り建物はIDで紐づいています。indexを使うんですね。どうもありがとうございます。動かしてみたいと思います!
No.3
- 回答日時:
No2の方のマクロをみると
①青シートと②ピンクシートは、別々のブックとして扱っています。
①青シートと②ピンクシートは、同じブック内にあるのでしょうか。
それとも、別々のブックなのでしょうか。
もし、別々のブックだとしたら、
各々のブック名は何でしょうか。
又、どちらのブックもオープンされているという前提で良いのでしょうか。
それとも、②ピンクのブックは閉じているのでしょうか。
(①青のブックはマクロのあるブックなので当然オープンされている前提です。)
ありがとうございます。
すみません説明不足でした。
実際には違うブックです。
ブック名はそれぞれ①と②という形で大丈夫です。青のブックは開かれますがピンクは閉じています。どうぞよろしくお願いいたします。
No.1
- 回答日時:
マクロで対応する前提での補足要求です。
1.②ピンクのシートのシート名は何でしょうか。
2.①青色のシートのシート名は何でしょうか。
3.②の列は動くということですが、B列(種別)、D列(建物名)、F列(建物かな)
が動くこともありますか。これらの列が動くと、対応できないです。
4.①と②を紐づけるのは、建物名で良いですか。
①E列の田中団地に対応する②D列の田中団地(種別=共通)を検索し、
該当レコードのF列(建物かな)を取得します。
ありがとうございます!
1. ①は入力用
2. ②は参照です。
3. ②はシステムから落とすので他部署によって項目が挿入されたり削除されるので列名は固定されるものの列の順番や列数は固定できない状況です。。(他のシートに列抜き出す等でご対応は難しいでしょうか。。
4. 建物名で大丈夫です。
どうぞよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】シートの中から特定の文字列のセル位置を取得するには? 6 2021/11/03 23:11
- Excel(エクセル) IF文の管理を簡単にしたい 4 2021/11/07 11:23
- Visual Basic(VBA) 【関数orVBA】カーソルのある行を黄色にし、A列の値を別シートに表示できますか? 4 2021/12/28 00:03
- Access(アクセス) accessでexcelデータを一部変換してインポートするVBAコードを教えてください。 2 2021/12/14 08:31
- Visual Basic(VBA) 【Excel VBA】全シートのデータを1シートに集約するには? 2 2021/11/15 18:13
- Excel(エクセル) エクセルで別ブックの複数シートを参照VBA 4 2021/12/08 23:14
- Excel(エクセル) マクロを修正できないものか、統合シートについて 3 2021/12/07 09:26
- Visual Basic(VBA) 転記VBA エラーが出ます 2 2021/11/15 16:08
- Excel(エクセル) VBA 特定の単語以外が含まれる行全体を削除したい 2 2021/11/03 18:55
- Excel(エクセル) エクセル相違の発見 6 2021/11/15 19:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
VBマクロ 色の付いたセルを...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
エクセル VBA ユーザーフォー...
-
VBA A列にありB列にないものま...
-
B列の最終行までA列をオート...
-
複数処理 Worksheet_Change(ByV...
-
超難 日付に対するクロス集計
-
文字列の結合を空白行まで実行
-
VBA 値と一致した行の一部の列...
-
空白セルをとばして転記
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA intersect colu...
-
VBAのFind関数で結合セルを検索...
-
オートフィルタをマクロで作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
画像追加します!
青のシートは、他のシートからも情報を引っ張ってきています。
条件がなさすぎるかもしれませんが、とりあえずピンクのシートから田中団地が入ってくるとお考えいただけますでしょうか?