![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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ランキング
-
F9キーについて。
-
Excel 小さくなったスクロール...
-
Excel関数について教えてくださ...
-
計算能力
-
Excelセルを跨いで合計を出す方法
-
Excelに詳しい方! B列が「日...
-
エクセルでファイルの最終更新...
-
Excelのピボットグラフの作り方...
-
Excelファイルが開けません
-
Excel 2019 [オプション]の[リボンのユ...
-
【EXCEL】画像の黄色部分の抽出...
-
スプレッドシートの関数につい...
-
エクセルで 自動的に◯や数字を...
-
excel2013 MonthDays 関数が使...
-
シフト表をエクセルで作るとき...
-
EXCELの散布図で日付が1900年に...
-
特定の文字列を含む、住所を抽...
-
Excel分数の表示について
-
エクセルの関数について教えて...
-
マイクロソフトのPADを使ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報
こんばんは。みなさまご回答ありがとうございます。質問が分かり辛かったかもしれませんが
シート「B」のセルの氏名の位置は決まっていません。(バラバラの位置です)ですので一つ一つ関数を入れると手がかかるのでVBAで自動で転記できないかを質問させていただきました。VBAでできるのでしょうか?
tom04さん、ご教示ありがとうございます。
範囲はB1:AW80までです。
二度手間で申し訳ありません。