![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.2ベストアンサー
- 回答日時:
ANo.1です。
個人的な好みもありますが、ユーザーフォームは何かをそこで入力させたりする場合に使う場合が多いので、メッセージを表示したりボタンを一つ押すだけのフォームはあまり見ませんね。
ユーザーフォームを使うんなら、県の選択もユーザーフォーム中でやった方がしっくりします。
ユーザーフォームを使わないなら、メッセージはMsgboxで出して、マクロはシート上に張り付けたボタンで起動が良いと思います。
一応、県の選択もユーザーフォーム上で行う場合のサンプルです。
Z列とAA列を作業列として使用しています。
Private Sub UserForm_Initialize()
'C列の重複無LISTをZ列に作成
With Worksheets("Sheet1")
.Columns("Z:AA").ClearContents
.Range("C:C").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("Z1"), Unique:=True
nList = .Cells(Rows.Count, 26).End(xlUp).Row
End With
'ListBoxに重複無Listをセット
With ListBox1
.RowSource = "Sheet1!Z2:Z" & nList
.ColumnHeads = True
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
End With
End Sub
Private Sub CommandButton1_Click()
'選択されたもののリストをAA列に作成
j = 1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
Worksheets("Sheet1").Range("AA" & j) = ListBox1.List(i)
j = j + 1
End If
Next i
If j = 1 Then
Hide
Exit Sub
End If
'選択された県のA列の値をB列に
With Worksheets("Sheet1")
For k = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
sTraget = .Range("C" & k).Value
If WorksheetFunction.CountIf(.Range("AA1:AA5"), sTraget) > 0 Then
.Cells(k, 2) = .Cells(k, 1)
.Cells(k, 1) = ""
End If
Next k
End With
Hide
End Sub
![「ユーザーフォームから可視セルを隣のセルに」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/1241782_5497ee4b1bab7/M.jpg)
ありがとうございます。
ユーザーフォームを使う方法、メッセージボックスを使う方法、両方検討してみます。
これでようやく、懸案が解決しそうです。
No.1
- 回答日時:
1.メッセージはセルのコメントで表示しましょう。
2.オートフィルタ終了のイベントはありませんので、自動で次の処理に進むのは無理です。
オートフィルタ後に、マクロを手動で動かすようにします。
3.オートフィルタ後の処理は以下の様なマクロになります。
Sub Sample()
With ActiveSheet
If .AutoFilterMode Then
If .AutoFilter.Filters(1).On Then
For Each c In .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
Cells(c.Row, 2) = Cells(c.Row, 1)
Cells(c.Row, 1) = ""
End If
Next c
.Range("C1").AutoFilter Field:=1
Else
MsgBox ("オートフィルターで絞り込まれていません")
End If
End If
End With
End Sub
![「ユーザーフォームから可視セルを隣のセルに」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/b/1241782_5497f09a925c0/M.jpg)
この回答への補足
早速の回答ありがとうございます。
これは、CSVファイルからデータを取り込むマクロの途中で、ユーザーフォームを挿入して処理を一旦止めてユーザーに選択をしてもらいたいのです。
オートフィルター終了のイベントが無いとのことですが、そのためにユーザーフォーム上のOKボタンをクリックしたら、後のマクロを走らせるようにしたいと思うのですが、いかがでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- その他(Microsoft Office) エクセル 表の移動 2 2023/04/05 20:29
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) エクセルVBA 作業後に選択範囲を解除する方法 5 2023/02/17 07:13
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
オートフィルタで3つ以上の条...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
VBA オートフィルタで抽出した...
-
Excel共有ブックのオートフィル...
-
オートフィルタで表示されるリ...
-
access マクロでのフィルタの...
-
エクセル関数で、数字の入った...
-
Excelで文字を入力と自動的にフ...
-
Excelオートフィルターで絞り込...
-
エクセルで特定の列にある日付...
-
エクセルで、条件に一致した行...
-
オートフィルタは金額の桁カン...
-
エクセルのオートフィルタで困...
-
オートフィルタで抽出したデー...
-
オートフィルタの抽出速度を上...
-
Excel VBAのオートフィルタ解除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
access マクロでのフィルタの...
-
エクセル関数で、数字の入った...
-
オートフィルタで3つ以上の条...
-
Excel共有ブックのオートフィル...
-
エクセルで、条件に一致した行...
-
エクセル・条件付で行を削除す...
-
エクセルにて、フィルタをかけ...
-
データの抽出を教えてください
-
エクセルで検索窓のようなもの...
-
Excelで文字を入力と自動的にフ...
-
Excelオートフィルターで絞り込...
-
オートフィルタで選択したデー...
-
なぜShowAllDataだとうまく行か...
-
ACCESSでスペースの抽出
-
エクセル フィルタで抽出したデ...
おすすめ情報