自分は技術者ではないのですがエクセルのVBAで質問があります。
エクセルで作ったデータをフォームから検索して一件ずつ表示するにはどうしたらよいでしょうか?
途中まで作ったのですが、自分の方法としては「シート1」にあるデータを変数に入れ、その変数をフォームに出力させるというものなんですが、もっと簡単な方法はないでしょうか?
変数a = 2 : 変数b = 1
For 変数a = 2 To 65536
If Sheets("シート1").Range("A" & 変数a) = Empty And 変数a = 2 Then
MsgBox "データがありません"
GoTo 終わり
ElseIf Sheets("シート1").Range("A" & 変数a) <> Empty Then
項目1(変数b) = Sheets("シート1").Range("A" & 変数a)
項目2(変数b) = Sheets("シート1").Range("B" & 変数a)
項目3(変数b) = Sheets("シート1").Range("C" & 変数a)
変数b = 変数b + 1
ElseIf Sheets("シート1").Range("A" & 変数a) = Empty Then
GoTo 終わり
End If
Next
終わり:
こんな感じにしたいです。↓
http://hp1.cafesta.com/hp/album_photo_read.do?hp …
No.3ベストアンサー
- 回答日時:
私なりに質問内容を理解して書いてみたんですが、これでいいのかどうか?かなり疑問です。
。。フォーム(UserForm1)にテキストボックス(TextBox1)とコマンドボタン(CommandButton1)を適当に配置してもらって、ワークシートのA~Cの縦に適当に文字を入れてもらえば動きます(はず)
フォームのテキストボックス(TextBox1)に検索したい文字を入れてボタン押して下さい
とりあえずフォームじゃなくてMsgBoxに結果を出してます
フォーム上に出すなら?コード内の結果用MsgBoxをコメントブロックして下段のTuika=・・・とその下行のコメントブロックを解除して下さい
追加でTextBox2を作ってもらってプロパティでMultiLineをTrue、ScrollBarsをfmScrollBarsBothにでもしてもらえらば、とりあえずフォーム上にでます
順番が逆に出て格好悪いんですけど。。。
参考になれば参考にして下さい
おもいっきり、素人です。
Dim iTate As Long
Dim iYoko As Integer
Dim TateMax As Long, YokoMax As Integer
Dim KensakuMoji As String
Dim Tuika
Private Sub CommandButton1_Click()
TateMax = 65536 '縦最大値
YokoMax = 3 '横最大値
KensakuMoji = UserForm1.TextBox1.Text '検索する文字
For iTate = 2 To TateMax '縦へ
For iYoko = 1 To YokoMax '横へ
If ActiveSheet.Cells(iTate, iYoko) = "" Then
Cells(iTate, iYoko).Select 'どこを検索中か?(確認用)
MsgBox "データがありません", vbExclamation
Exit Sub 'プログラムを抜ける
ElseIf ActiveSheet.Cells(iTate, iYoko) = KensakuMoji Then
Cells(iTate, iYoko).Select 'どこを検索中か?(確認用)
MsgBox ActiveSheet.Cells(iTate, iYoko)
' Tuika = ActiveSheet.Cells(iTate, iYoko) & "はセルの(" & iTate & "," & iYoko & ")です" & vbNewLine & Tuika
' UserForm1.TextBox2.Text = Tuika
End If
Next iYoko
Next iTate
End Sub
No.2
- 回答日時:
ListBoxを使用するとか。
No.1
- 回答日時:
少しVBA(マクロ)を勉強された方が良いと思います。
自分も経験者とかじゃないので、下手なソース書いてますが、
自分が見ても勉強された方が良いと思います。
-------------------------------------------------------
Option Explicit
Sub Sample()
Dim i As Long
Dim LastRow As Long
Dim Ws As Worksheet
Dim K1() As Variant
Dim K2() As Variant
Dim K3() As Variant
Set Ws = Sheets("シート1")
LastRow = Ws.Range("a65536").End(xlUp).Row
If LastRow = 1 Then GoTo syori
ReDim K1(LastRow - 1)
ReDim K2(LastRow - 1)
ReDim K3(LastRow - 1)
For i = 2 To LastRow
K1(i - 1) = Ws.Range("a" & i).Value
K2(i - 1) = Ws.Range("b" & i).Value
K3(i - 1) = Ws.Range("c" & i).Value
Next i
'With Sheets(2)
'For i = 1 To LastRow - 1
' .Cells(i, 1).Value = K1(i)
' .Cells(i, 2).Value = K2(i)
' .Cells(i, 3).Value = K3(i)
'Next i
'End With
Set Ws = Nothing
Exit Sub
syori:
Set Ws = Nothing
MsgBox "データがありません。"
End Sub
-------------------------------------------------------
お手本になる様なソースではありませんが、勉強されてみて
下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
Excel マクロについての相談
-
別のシートを参照して計算する方法
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
VBA 最終行まで数式をコピーする
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
エクセルのマクロについて教え...
-
VBA 入力月で該当シートを選択...
-
一括印刷マクロ シート名を数字...
-
【ExcelVBA】動的にボタン、ボ...
-
VBA 存在しないシートを選...
-
同じ作業を複数のシートに実行...
-
ListViewの画面の更新
-
実行時エラー1004「Select メソ...
-
シートが保護されている状態で...
-
エクセルで通し番号を入れてチ...
-
【VBA】指定した検索条件に一致...
-
ユーザーフォームに入力したデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報