
No.5ベストアンサー
- 回答日時:
続けてお邪魔します。
>範囲はB1:AW80までです。
というコトですので、↓のコードに変更してみてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, wS As Worksheet
Set wS = Worksheets("A")
If Intersect(Target, Range("B1:AW80")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Value <> "" Then
Set c = wS.Range("A:A").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Offset(1) = c.Offset(, 1)
End If
End If
End With
End Sub
※ あくまで憶測ですが、
>名前を入れた下のセルに自動的に入るようにしたい・・・
が最初の質問だったので、
奇数行に入力 → その下のセルに表示!
がご希望なのでは?
そうであれば、コード内の
>If .Value <> "" Then
の行を
>If .Row Mod 2 = 1 And .Value <> "" Then
に訂正してみてください。
(偶数行の入力は何も変化しません)
今度はどうでしょうか?m(_ _)m
No.4
- 回答日時:
No.3です。
>シート「B」のセルの氏名の位置は決まっていません。(バラバラの位置です)
本当にバラバラ(どこのセルでもよい)のですね?
前回のコードを消去し、↓のコードに変更してみてください。
(シートモジュールです)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, wS As Worksheet
Set wS = Worksheets("A")
With Target
If .Count = 1 And .Value <> "" Then
Set c = wS.Range("A:A").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Offset(1) = c.Offset(, 1)
End If
End If
End With
End Sub
※ いくらバラバラだといっても
ある程度の範囲があるはずだと思いますが、その辺の説明がないので
全てのセルで反応してしまいます。
※ 二度手間になるので、バラバラな範囲を書いてもらえていたら
的確なアドバイスができたと思います。m(_ _)m
No.3
- 回答日時:
こんばんは!
わざわざVBAでなくても、関数で対応出来ると思いますが、
仮に「B」SheetのA1セルに名前を入力 → A2セルに「電話番号」を表示させたい!
という場合は
=IFERROR(VLOOKUP(A1,A!B:C,2,0),"")
だけで大丈夫だと思います。
どうしてもVBAで!というご希望であれば・・・
VBAの場合は具体的なセル配置が判らないと全く意味のないコードになってしまいますが、参考程度で。
「B」SheetのA1セルに名前を入力し、その下のセルに「電話番号」を表示させる場合のコードです。
「B」Sheetのシートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, wS As Worksheet
Set wS = Worksheets("A") '←「A」の部分は実際のSheet名に!
With Target
If .Address = "$A$1" And .Count = 1 Then
Set c = wS.Range("B:B").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
.Offset(1) = c.Offset(, 1)
Else
MsgBox "該当データなし"
.Select
End If
End If
End With
End Sub
こんな感じでしょうかね。m(_ _)m
No.2
- 回答日時:
指定した名前の人物の電話番号を表示したいのであれば、VBAを利用しないでも、関数で対応可能です。
添付図はシートBであり、B2セルには以下の式が入っています
(シート1のB列には氏名、C列には電話番号)
=VLOOKUP($B$1,A!$B:$C,2,0)
また、シートAのように名前のセルの右隣に電話番号が入っている状態から、名前の下のセルに電話番号を移す方法としては、最初に名前と電話番号が入力してある範囲をコピーし、右クリックのメニューから「形式を選択して貼り付け」を選択肢、貼り付けのメニューから「行と列を入れ替える」を選択することで一括で変換できます
どうしても、VBAでやりたいということであれば、他の回答者様を参考にしてください。

No.1
- 回答日時:
dim i as integer
i=2
do until worksheets("A").cells(2,i).value = ""
worksheets("B").cells(2,i).value = worksheets("A").cells(2,i).value
worksheets("B").cells(3,i).value = worksheets("A").cells(3,i).value
i = i + 1
loop
上記のように、1行1行代入するやり方ではいかがですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
if関数の複数条件について
-
【画像あり】オートフィルター...
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
エクセルシートの見出しの文字...
-
エクセルでフィルターした値を...
-
【マクロ】【画像あり】4つの...
-
【画像あり】【関数】指定した...
-
エクセル GROUPBY関数について...
-
エクセルのリストについて
-
VLOOKUP FALSEのこと
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
9月17日でサービス終了らし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ】【相談】Excelブック...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】数式を入力したい。...
-
【マクロ】左のブックと右のブ...
-
エクセルの関数について
-
エクセルのリストについて
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】excelファイルを開く...
-
【関数】3つのセルの中で最新...
-
エクセルの複雑なシフト表から...
-
【マクロ】【画像あり】❶ブック...
-
LibreOffice Clalc(またはエク...
おすすめ情報
こんばんは。みなさまご回答ありがとうございます。質問が分かり辛かったかもしれませんが
シート「B」のセルの氏名の位置は決まっていません。(バラバラの位置です)ですので一つ一つ関数を入れると手がかかるのでVBAで自動で転記できないかを質問させていただきました。VBAでできるのでしょうか?
tom04さん、ご教示ありがとうございます。
範囲はB1:AW80までです。
二度手間で申し訳ありません。