![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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でやりたいということであれば、他の回答者様を参考にしてください。
![「EXCEL VBAで教えてください。(隣」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/1216724_56c30e799e514/M.jpg)
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で質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで表を作ったところに文字...
-
エクセルのクイックアクセスツ...
-
エクセルのクイックアクセスツ...
-
Excelピボットテーブルの1行目
-
ユーザー定義関数をアドイン登...
-
エクセルでCtrl+Tでテーブルの...
-
DATE関数で現在の年齢を出した...
-
REGEXREPLACE関数について、
-
職場の人から聞かれており、こ...
-
在庫管理表に使うエクセルの関...
-
下記マクロでMsgBox "空白です...
-
エクセルでバーコード作成し使...
-
Excel関数-文字列で自動作成さ...
-
Excelについて
-
エクセルで表
-
Excelで、項目の種類ごとにカウ...
-
エクセル マクロ チェックボックス
-
【Excel】数字を3倍にし、なお...
-
【マクロ】ファイル名の変更に...
-
お世話になります。 Excelを使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報
こんばんは。みなさまご回答ありがとうございます。質問が分かり辛かったかもしれませんが
シート「B」のセルの氏名の位置は決まっていません。(バラバラの位置です)ですので一つ一つ関数を入れると手がかかるのでVBAで自動で転記できないかを質問させていただきました。VBAでできるのでしょうか?
tom04さん、ご教示ありがとうございます。
範囲はB1:AW80までです。
二度手間で申し訳ありません。