こんにちは
VBA初心者です。
マクロでこんなことできませんか?
完全でなくても構いませんので、できる範囲で教えてください。
宜しくお願いいたします。
マクロを起動すると、ファイルを選択するウインドウが開きます。ここで、あるExcelファイル(仮にC:\MYDOCUMENT\EXCEL\AAAA.xls)を選択すると、
このファイルの列D5、行A7から始まる氏名一覧が、マクロを実行しているファイル(BBBB.xls)の列A、行A9セルに1行ずつ、名前を検索して、その名前と同じ人の行に入れる仕様です。
宜しくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
投稿する前に質問文を読み返すことをお勧めします。
(タイトルも含めて)> このファイルの列D5、行A7から始まる氏名一覧が
「このファイルの D列 7行目から下に向かって入力されている氏名一覧が」 ということでしょうか?
「ファイルを選ぶ」「ファイルを開く」「氏名一覧を取得する」を GetNameList という一つの関数にまとめてみました。
名前の一覧を二次元配列で返します。
配列のインデックスは 1 から始まります。
あくまでも動作を説明するコードなので、AAAA.xls から取得した氏名一覧を AAAA.xls のシートに書き出しています。
書き出す処理の代わりに、質問者が行いたい「名前を検索して・・・」のコードを考えればよいと思います。
Sub hoge()
Dim nameList As Variant ' 取得した氏名一覧の配列
nameList = GetNameList()
If Not IsArray(nameList) Then
Exit Sub
End If
Dim thisSheet As Worksheet
Set thisSheet = ThisWorkbook.Worksheets(1) ' BBBB.xls の左から 1枚目のシートに書き出します。
' 取得した氏名の一覧をセルに書き出す
Dim i As Long
For i = 1 To UBound(nameList)
thisSheet.Cells(i, 1).Value = nameList(i, 1)
Next
End Sub
Function GetNameList() As Variant
' 対象ファイルを選択し、そのファイルパスを取得する
Dim fileToOpen As Variant ' 選択するファイルのパス
fileToOpen = Application.GetOpenFilename("Excel ファイル,*.xls")
If fileToOpen = False Then
GetNameList = ""
Exit Function
End If
' 選択したファイルを開く
Dim listBook As Workbook, listSheet As Worksheet
Set listBook = Workbooks.Open(fileToOpen)
Set listSheet = listBook.Worksheets(1) ' AAAA.xls の左から 1枚目のシートに氏名一覧があると仮定しています。
' 開いたファイルに記載されている氏名一覧の範囲を取得する
Dim listColumn As Long, listRowStart As Long, listRowEnd As Long
listColumn = 4 ' D列
listRowStart = 7 ' 7列目から
listRowEnd = listSheet.Cells(7, 4).End(xlDown).Row
' 氏名一覧のデータを取得する
GetNameList = listSheet.Range(listSheet.Cells(listRowStart, listColumn), listSheet.Cells(listRowEnd, listColumn)).Value
' ファイルを閉じ、氏名一覧のデータを返す
listBook.Close False
End Function
x-1919さん
ご回答いただき、本当にありがとうございます。
すごく助かりました。
ご丁寧にありがとうございました。
外国人なので、日本語の書き方がちょっとわかりにくかったですね。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
Windows上のファイル操作の履歴...
-
バッチファイルでディレクトリ...
-
別のフォルダにファイルを移動...
-
Chromeリモートデスクトップで...
-
Lhaplusが発したと、みられるエ...
-
フォルダ内ファイルの自動削除化
-
Zipファイルをエクセルに指定変...
-
ipadで社内ネットワークに接続
-
FTPの更新を定期チェックして通...
-
Win7のPCのサーバー内のファイ...
-
複数のフォルダーからファイル...
-
visual studio 2008 プロジェク...
-
Outlookの「受信日時」「件名」...
-
TCP/IP のパケットの分断と結合...
-
バックアップの用語
-
en_US.UTF-8ロケールってどのPO...
-
VC++メッセージの送受信につい...
-
「TCPは全二重可能」の意味
-
ネットワークでの受信バイト数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
バッチファイルでディレクトリ...
-
jarファイルが開けない
-
Windows上のファイル操作の履歴...
-
指定ファイルをFTPで自動アップ...
-
ipadで社内ネットワークに接続
-
Zipファイルをエクセルに指定変...
-
別のフォルダにファイルを移動...
-
CSVファイルのマッピング処理の...
-
Batファイルでhostsを追加したい
-
複数のテキストファイルの特定...
-
エクセル 共有ファイル 削除
-
ダウンロードしたファイルを、...
-
linuxサーバにファイルをアップ...
-
Windowsのファイルコピーについて
-
Lhaplusが発したと、みられるエ...
-
アプリケーションが見つかりません
-
postfixの.forwardでメールの転...
-
sftp時の公開鍵認証
-
ダンプツールとは?
おすすめ情報