下記コード内で、シートを選択する際、マクロ呼出前は意図したとおり
になるのですが、セル入力前だと上手くいきません。Activateにして
もダメでした。根本的に理解していないようなので、教えてください。
よろしくお願いします。
シートAの実行ボタンをクリック
Private Sub ButtonA_Click()
Application.ScreenUpdating = False
tempA = TextBox1
If ButtonB = True Then
tempB = "10"
End If
Sheets("B").Select
Call XYZ1
' ----------------- (問題あり ここから)--------------
Sheets("B").Select
Cells(1, 2) = 100
For i = 2 To 200
Cells(i, 2) = Range("B" & i - 1) - Range("A" & i)
Next
' ----------------- (問題あり ここまで)--------------
Sheets("A").Select
Call XYZ5
Application.ScreenUpdating = True
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
大変失礼な言い方だけど、コードが雑すぎるように思います。プロパティがほとんどありませんね。もう少し、コードはコントロールの名称を含めわかりやすくしたほうがよいと思います。なるべくデフォルトのままのほうがよいですし、入力も楽です。シートモジュールでは、Me.cなどと入れると、インテリセンスで、シートのコントロールの配下の名称が出てきます。(フォーム側は出せません)
まず、そのボタンは、何のボタンなのでしょうか?
>シートモジュールです。
ということは、コントロールツールのボタンですね。コントロールツールは、シートモジュールが基本です。それは、コントロールツールが、シートの配下にあるからです。
>If ButtonB = True
これはなんでしょうか? CommandButtonの場合は、インタンスでプロパティを設けないと、True は取れません。常に、Falseです。
Cells(1, 2) = 100
シートモジュールでは、CellsのRangeオブジェクトのプロパティは、シートの配下になりますから、そのままでは使えません。
With Sheets("B")
.Select
.Cells(1, 2) = 100
For i = 2 To 200
.Cells(i, 2) = .Range("B" & i - 1) - .Range("A" & i)
Next
End With
Cell とRangeが、スタイルがごちゃごちゃですが、それはいいとします。
このように書きます。ただし、できれば、プロパティは入れたほうがよいです。この場合は、.Value プロパティのはずですが。
No.1
- 回答日時:
>マクロ呼出前は意図したとおりになるのですが、セル入力前だと上手くいきません
意味が不明です。補足をお願いしたいです。またダメが「エラーになる」という意味ならエラーコードも補足していただく方が良いと思いますよ。
またこのコードはどのモジュールシートに書いていますか。
標準モジュールシートに書いてもダメでしたか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでオブジェクトが必...
-
コンボボックスへ降順に表示す...
-
エクセルのVBAについて教えてく...
-
オフィス2003VBAのスプレッドシ...
-
Access-VBAでExcelファイ...
-
VBA シートをコピーする際に Co...
-
Excel UserForm の表示位置
-
B列の最終行までA列をオート...
-
エクセルで複数のシートのクリ...
-
Worksheets メソッドは失敗しま...
-
エクセル マクロ オートフィ...
-
VBAマクロ実行時エラーの修正に...
-
Excelで、あるセルの値に応じて...
-
VBA 空白行に転記する
-
URLのリンク切れをマクロを使っ...
-
エクセルで離れた列を選択して...
-
エクセルで特定の文字列が入っ...
-
マクロの「SaveAs」でエラーが...
-
VBAで別ブックのシートを指定し...
-
LEFT関数とIF関数の組み合わせ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access-VBAでExcelファイ...
-
コンボボックスへ降順に表示す...
-
エクセルVBAでオブジェクトが必...
-
マクロのコマンドボタン《Activ...
-
複数シートを一括で保護を掛け...
-
エクセルで品番を入れると、そ...
-
マクロ実行後、画面がちかちか...
-
エクセルのVBAについて教えてく...
-
エクセルマクロ 変数をワーク...
-
VBAでVlookup機能を使うときに...
-
エクセルマクロ(超初心者)
-
Excelに関数使用を調べる方法
-
エクセルを共有にすると、シー...
-
Excell VBA にて配列に定数を代...
-
エクセルVBA 別シートの最終セ...
-
Excelの各シートの一覧シートの...
-
マクロのイベントトリガー
-
マクロでフォルダ内のExcelを全...
-
エクセルVBAでフォームの無効化...
-
エクセル マクロについて、 Inp...
おすすめ情報