No.6ベストアンサー
- 回答日時:
シート上のA1セルにC列へ入力したセルのアドレスを記憶します。
ComboBox1.Textの値を転記する時、A1のアドレスを参照して、そのアドレスの右横へ設定します。
ここでは便宜上、シート上のA1セルにしていますが、あなたの環境に合わせて、任意のセルに変更してください。
シートモジュール側
'JANを入力したら日付が転記される
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, -1).Value = Now
Application.EnableEvents = True
'JAN入力したらformが開く
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
Range("A1").Value = Target.Address
UserForm2.Show
End Sub
UserForm2側
(トリガが不明なのでコマンドボタンクリック時の処理にしています。
あなたの環境に合わせて修正してください)
Private Sub CommandButton1_Click()
Dim addr As String
addr = Range("A1").Value
Range(addr).Offset(0, 1).Value = ComboBox1.Text
Unload UserForm2
End Sub
No.5
- 回答日時:
No2です。
ようやくのこと、情報が示されたので理解できましたが・・・
補足でご提示のプロシージャ内では変数TargetにC列のセルが取得できているはずです。
(コピペなどを行うと複数セルになるので、ご提示の処理だといろいろと問題はありますが・・)
とりあえず、一つのセルしか変わっていない場合に限定してもよいのなら、
Targetセルの右側のセル(= .Offset(,1))がD列のセルになります。
一方で、問題となっている処理をどこで実行しているのかは未だに不明のままですが、勝手に妄想するところ、UserForm2のプロシージャ内ではないかと想像しました。
プロシージャが別な場合には変数は直接参照できませんので、対象セル位置をプロシージャ間で受け渡す必要があります。
方法としては、
1)グローバル変数を利用して受け渡す
2)シート上の対象セルをアクティブにしておいて受け渡す
3)フォーム上の(非表示)ラベルなどに対象セルアドレスを記入して受け渡す
等が考えられます。
元のプロシージャに制御を戻すことも考えられますが、処理の構造が複雑で面倒になるだけと思います。
上記の1)~3)のいずれかで対応するのが簡便でしょう。
(2)はアクティブセルが移動してしまうので、UIとしては良くないかも知れません)
No.2
- 回答日時:
No1です。
>試してみたのですがダメでした
2択方式でしか情報がないので、ほぼ何もわかりませんけれど・・・
同じダメでも、原因はいろいろ考えられます。
・転記対象セルが取得できずにエラーになる
・フォームの値が取れずエラーになる
・対象セルが違う所になる
・フォームの値が違う値になる
・・・・
などなど、いろいろです。
また、どういう状況で実行されているのかにもよるところがあります。
試しに、
Range("A1").Value = Userform2.ComboBox1.Text
とすれば、A1セルに値が表示されませんか?
(フォームの値が空白の場合は、A1セルも空白になります)
もしも、表示できればフォームの値は取得できていることになり、それ以外の部分に関しては何も情報が無いので、当方には推測のしようがありません。
No.1
- 回答日時:
こんにちは
C列のセルは取得できているのでしょうから、それを仮に「C列のセル」というRangeオブジェクトとします。
トリガーも不明ですが、UserForm内の処理で行うなら、
C列のセル.Offset(, 1).Value = ComboBox1.Text
で、転記できると思います。
その他の状態からForm内の要素を参照する場合は、
Userform2.ComboBox1.Text
としておく必要があるかも知れません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) TextBoxで入力したらComboBoxに紐づいた情報を表示させたい 1 2023/06/20 12:17
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) エクセルのマクロを教えてください 4 2022/02/04 08:05
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Visual Basic(VBA) 【関数orVBA】カーソルのある行を黄色にし、A列の値を別シートに表示できますか? 4 2021/12/28 00:03
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
-
4
VBA 二つのブックをうまく扱えないでいます
Visual Basic(VBA)
-
5
VBA コード
Visual Basic(VBA)
-
6
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
7
VBA
Visual Basic(VBA)
-
8
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
9
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
10
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
11
Excel VBA ダブルクリックで入力 複数まとめる
Visual Basic(VBA)
-
12
Excel VBAマクロをマスターするのに、どれ位時間掛かりますか?
Visual Basic(VBA)
-
13
特定文字を入ってるCSVの特定の列を特定のexcelシートに取り込みたいです
Visual Basic(VBA)
-
14
A列B列どちらにもあるのを抽出する
Visual Basic(VBA)
-
15
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
16
Cellsのコードが打てません
Visual Basic(VBA)
-
17
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
18
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
19
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
20
マクロのエラー
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA指定行削除
-
B列の最終行までA列をオート...
-
VBAで10行おきにセルの下に罫線...
-
Cellsのかっこの中はどっちが行...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
VBAの初心者なのですが、「並び...
-
Excel VBA 足し算の問題を自動...
-
Excel VBA の件で質問です
-
難問 VBA 今日の日付より前に対...
-
空文字 "" ですが 空文字の意味...
-
エクセルについて
-
エクセル VBA 条件にあうセルの...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
グリッドの列の最大値を求めたい。
-
エクセルVBAにて =A1=B1とすれ...
-
マクロ 最終列をコピーして最終...
-
【補足欄が足りなかったため、...
-
エクセルVBAで複数の条件を満た...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
回答ありがとうございますm(__)m
現在C列に入力するとUserform2が開く仕様になっていると質問しましたが
エンター押した後にformが開きますのでカーソル位置は一段下に移動しています 試してみたのですがダメでした(´;ω;`)
説明下手ですみません(´;ω;`)
Range("A1").Value = Userform2.ComboBox1.TextはA1に転記できましたが
この場合ですとフォームを開いた行は関係なくComboBoxのコメントをA1にお転記させたということですよね?
現状はformを開いた下の段D列に転記されてしまいます
'JANを入力したら日付が転記される
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, -1).Value = Now
Application.EnableEvents = True
'JAN入力したらformが開く
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
UserForm2.Show
End Sub
Cells(r.Row + r.Rows.Count, r.Column).End(xlDown).End(xlUp).Offset(0, 0).Select
For i = 4 To 20000
If Cells(i, 4).Value = "" Then Exit For
Next
'連番
Cells(i, 1).Value = i - 3
'出庫先
Cells(i, 4).Value = Me.ComboBox1.Text
Unload UserForm2
Exit Sub
End Sub
色々変えてみて現状これで同じ行のD列に転記できました・・・これで問題なさそうでしょうか?
今までC列の最下部だったんですがフォーム閉じた後のカーソルの位置がおかしくなってしまいました(´;ω;`)