
No.1ベストアンサー
- 回答日時:
こんにちは
登録もユーザーフォームから行うということで良いのですよね?
>住所や連絡先が同じであれば追加できない仕様にしたいです。
例えば、
・シートを直接編集できないように、保護をかけておきます
・フォームから登録の際(ボタンを押した際)にシート内の既登録データと
照合して、同じものがあれば登録しない
・なければ、マクロからシートに登録する
ようにしておけばよろしいかと思います。
>別のユーザーフォームで連動したリストとして表示させたいです
シートの内容をそのままリスト表示させたいのであれば、こんな感じでしょうか。
https://kosapi.com/post-4023/
No.3
- 回答日時:
#2の仮定で
例 UserForm1に書きます
Dim wsht As Worksheet
Dim r As Range
Private Sub CommandButton1_Click()
Dim Dic As Object
Set wsht = Worksheets("業者登録")
With UserForm2
'.ListBox1.AddItem ??
.ListBox2.AddItem Me.TextBox1.Value
Set Dic = CreateObject("Scripting.Dictionary")
For Each r In wsht.Range(wsht.Cells(2, 1), wsht.Cells(Rows.Count, 1).End(xlUp))
If Not Dic.exists(r.Value) Then
Dic.Add r.Value, 0
.ListBox1.AddItem r.Value '重複しない
.ListBox2.AddItem r.Offset(, 1).Value
Else
.ListBox2.AddItem r.Offset(, 1).Value '全リスト業者名
End If
Next
Set Dic = Nothing
.Show
End With
End Sub
UserForm2側は取敢えずコントロールの配置のみでOKのはず
>連絡先が同じであれば追加できない
例 TextBox2が連絡先
Dim wsht As Worksheet
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Set wsht = Worksheets("業者登録")
If Application.CountIf(wsht.Range("D2", wsht.Cells(Rows.Count, 4).End(xlUp)), TextBox2.Value) > 0 Then
MsgBox "電話番号が重複しています"
Cancel = True
End If
End Sub
No.2
- 回答日時:
こんばんは
文字オーバーみたいなので説明とコードを分けて
下のユーザーフォームに上のユーザーフォームの値を登録(シート書き出し)前に入れると言う事でしょうか?
何故リストボックスなのでしょう?ここでまた変更すると言う事でしょうか
仮定(該当コントロール)
上がUserForm1
ListBox1とTextBox1 CommandButton1
下がUserForm2
ListBox1、ListBox2、CommandButton1
考えてみるとUserForm1.ListBox1の値ってシートリストのような気がするのですけれど違うのかな・・(書き込みできませんよね)
A列は一意でないので
UserForm2.ListBox1 <==UserForm1.ListBox1の値は意味が無いかな
ListBoxでなければ良いけれど・・
UserForm2.ListBox1 は シートリスト
UserForm2.ListBox2 <== UserForm1.TextBox1の値+シートリスト
UserForm1のCommandButton1_Click()でUserForm2を呼ぶ
RowSourceだとシートに書き出さないといけないのでAddItemを使います
UserForm2をわざわざ作らなくとも入力チェックをもう少し考えて作れば使い易くなりそうですね
あとComboBoxの方が入力ができるので良さそうかな
次に例(参考コード)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) 別シートの表の値を参照したい 2 2022/03/30 15:11
- その他(パソコン・スマホ・電化製品) エクセル初心者です。 仕事でエクセルを使っていて、普段は素人でもできる簡単な関数を使ったことがある程 1 2022/05/25 11:17
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Outlook(アウトルック) Outlook web版で連絡先リストのエクスポート、インポートはできますか? 1 2023/06/17 11:05
- その他(SNS・コミュニケーションサービス) テレグラムについて 1 2022/06/21 00:04
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
このQ&Aを見た人はこんなQ&Aも見ています
-
コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで
Excel(エクセル)
-
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
エクセル VBA ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示
Visual Basic(VBA)
-
-
4
ユーザーフォーム 3つのコンボボックスの連動について教えてください。
Excel(エクセル)
-
5
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
6
VBA リストボックス(複数条件)で検索し、転記方法についてご教示ください。
Visual Basic(VBA)
-
7
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
8
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
9
VBA リストボックス内の値を複数選択し別シートに転記するには
Visual Basic(VBA)
-
10
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
13
LISTBOXの内容が更新されません。
Visual Basic(VBA)
-
14
エクセルVBA 複数列のリストボックス内を検索して値を複数列表示したい
Excel(エクセル)
-
15
「Cancel = True」とはどういう意味でし
Word(ワード)
-
16
UserForm1.Showでエラーになります。
工学
-
17
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
18
ListBoxを選択したデータ編集② VBA
Visual Basic(VBA)
-
19
Excel 複数マスタからのコンボボックス連動
Excel(エクセル)
-
20
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
別のシートから値を取得するとき
-
特定の文字を含むシートだけマ...
-
【VBA】色のついたシート名を取得
-
XL:BeforeDoubleClickが動かない
-
【ExcelVBA】全シートのセルの...
-
エクセルで通し番号を入れてチ...
-
VBA 存在しないシートを選...
-
エクセルのVBAの変更点がわ...
-
VBAで以下の処理をする方法があ...
-
Codeがわかりません(自作の...
-
VBA 検索して一致したセル...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロについて教え...
-
セルのコピーで「オブジェクト...
-
EXCELVBAを使ってシートを一定...
-
【エクセル】オプションボタン...
-
エクセルVBA 別シートからのコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報