見積書の表に入力する際、Enterキーで横に移動し、行の最後入力したら次の行の先頭に移動するマクロを作成していたのですが、うまく動きません
ネットで検索してコードをコピーして、そのままだと動くのですが、セルを変更したりすると動いてみたり、エラーが出たり…
チェックボックスを作成して、チェックが入っている時のみマクロが動くコードを教えて下さい!
どうぞよろしくお願いいたします
表の範囲➡ A15:K35
入力したい順➡ A15,F15,G15,H15,K15,A16,F16,G16,H16……K35(A列とH列はそれぞれ結合セル)
チェックボックスの希望の場所➡ J13(K13に表示)
No.3ベストアンサー
- 回答日時:
こんにちは
マクロを作成したが、エラーや動作が思うようにいかないと言う事ですね
考えられるのは(ご存知かと思いますが)
>(A列とH列はそれぞれ結合セル)
結合セルを選択している時、1番上の左側セルが返るので、
Application.MoveAfterReturnDirection = xlToRight
などで右移動を設定してもF列セルに移動した時、A列結合セルの一番上の行になってしまうと思います。
従って、行が下に進まないまま選択セルが移行します。
やるのなら・・
入力シートに結合セルを作らない事(もう作っちゃた)
範囲選択や名前選択で実行(グレーになるから嫌)
結合セルを省く処理(除くと選択できないからダメ)
などになると思います。
セルにグレーの色がつかない方法でとの事で力業のような(実用的でない)限定的コードですがサンプルを・・参考になるか分かりません
A15:K35の途中で他のセルを選択し直す時の処理は入れていません
結合セル数が不明な為、モジュールレベル変数nで行移動
チェックボックスはActivexコントロール
シートイベントWorksheet_SelectionChange 併用
Option Explicit
Dim flg As Boolean, n As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If flg <> True Then Exit Sub
If Intersect(Target, Range("F15:F35"), Range("I15:I35")) Is Nothing Then
Application.EnableEvents = False
Cells(15 + n, Target.Column).Select
Application.EnableEvents = True
End If
If Not Intersect(Target, Range("K15:K35")) Is Nothing Then n = n + 1
End Sub
Private Sub CheckBox1_Click()
Application.MoveAfterReturn = True
If CheckBox1 = True Then
n = 0
flg = True
With ActiveSheet
.Range("A15:A35,F15:K35").Locked = False
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
.EnableSelection = xlUnlockedCells
End With
Application.MoveAfterReturnDirection = xlToRight
Else
n = 0
flg = False
ActiveSheet.Unprotect
Cells.Locked = True
Application.MoveAfterReturnDirection = xlDown
End If
Application.EnableEvents = False
Range("A15").Select
Application.EnableEvents = True
End Sub
不具合があるかも知れませんので、あれば、直してください
ありがとうございます!
やりたいことを理解してくださって感謝しています
早速コードを記入し、私がお伝えしきれていなかった部分を直しているところです
本当にありがとうございました
No.2
- 回答日時:
こんばんは
どのようなレイアウトなのか不明ですが・・
標準のカーソルの移動方向は、エクセルの機能でEnter時の移動方向を横に設定しておくことで可能です。
>そのままだと動くのですが、~~
いずれにしろ、カーソル移動の制御をなさりたいのでしょうから、単純な矩形の範囲の入力であれば、
「最後の列をを過ぎたら」を範囲に応じて判定すれば良いでしょう。
範囲がいろいろバラバラであるのなら、各行ごとに最終列か否かを判断するようにすれば良いでしょう。
>チェックが入っている時のみマクロが動くコードを教えて下さい!
簡単な仕組みを追加すれば実現可能です。
処理の最初に、「チェックが入っているか」をチェックし、入っていなければ何も処理を行わないようにすれば良いだけです。(=カーソルの制御をおこなわない)
「何をどうしたいのか」がはっきりとはわかりませんけれど、入力時などに指定セル以外は選択できないようになさりたいのなら、エクセルの機能だけでも実現可能です。
・カーソル移動を許可するセルだけをロックを外しておいて
・「シートの保護」で「ロックされたセルの選択」を不許可に
することで、指定セル以外にはカーソルが行かなくなります。
(セルが飛び飛びでも、あちこちにあっても可能です)
標準のカーソル移動方向を横にしておけば、「移動可能なセル」だけに順に移動するようになります。
No.1
- 回答日時:
マクロなんて作らなくても出来ますよ。
Enterでのカーソル移動方向を「横」にしておいて、入力したい範囲をドラッグで設定してから入力すれば、左上から右に向かって入力が進み、範囲設定した右端に行けば、次のEnterで一段下の左端に移動して入力を続けられますよ。
MS-Excelの標準的な使い方です。
早速ありがとうございます
お伝えするのを忘れてしまったのですが、
範囲を指定してから入力する方法、範囲に名前を付けて入力する方法も知っていたのですが、セルに色がつかない状態での入力をしたかったので、マクロを作成を試しておりました
言葉がたらずに申し訳ございません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Excel(エクセル) Excelのマクロについて:コピー→セル移動→貼り付け 3 2022/04/17 20:46
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
ちょっと先の未来クイズ第6問
2025年1月2日と1月3日に行われる、第101回箱根駅伝(東京箱根間往復大学駅伝競走)で、上位3位に入賞するチームはどこでしょう?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
【選手権お題その3】この画像で一言【大喜利】
とあるワンシーンを切り取った画像。この画像で一言、お願いします!
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
Excelでセルを次の行の先頭の列に移動させる方法を教えてください。
Excel(エクセル)
-
エクセルでエンターを押すと任意のセルに移動は出来ますか?
その他(コンピューター・テクノロジー)
-
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
-
4
Excelマクロ セルを行頭に移動
Excel(エクセル)
-
5
Enterキーで順番にセルの移動する。
Visual Basic(VBA)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
Excel 自動的に半角英数になり...
-
エクセルで、セルをクリックす...
-
エクセルでセルのコメントが消...
-
エクセルVBA ブックを閉じる前...
-
シートを保護しても入力規則を...
-
エクセル逆三角マークで選択項...
-
エクセル 入力規則のリストボ...
-
エクセルで入力規則が崩れてし...
-
入力規則の入力時メッセージの...
-
【Excel】ドロップダウンリスト...
-
Excelのリストで1文字目のみを...
-
フォーム入力で入力規則を設定...
-
エクセルで商品名を選ぶと商品...
-
エクセルのセルの手入力を禁止。
-
エクセルの入力規則で作ったリ...
-
エクセルのスクロールバーが異常
-
初期値をIF文で設定した後入力...
-
エクセルでよく使う言葉をすば...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセルでセルにポインタする...
-
エクセルでセルのコメントが消...
-
エクセルVBA ブックを閉じる前...
-
シートを保護しても入力規則を...
-
エクセルの入力規則で作ったリ...
-
エクセルで、入力制限(プルダ...
-
入力規則の入力時メッセージの...
-
【Excel】ドロップダウンリスト...
-
カンマで区切った数値をCOU...
-
エクセル逆三角マークで選択項...
-
エクセル 入力規則のリストボ...
-
エクセルVBA ユーザーフォーム...
-
エクセルで電話番号から市内局...
-
エクセルで、入力できる箇所を...
-
エクセルで。
-
Excel 自動的に半角英数になり...
-
エクセルのセルの手入力を禁止。
-
Excelでセルに名前を定義したい...
-
エクセルで負数の最大値を求めたい
おすすめ情報
範囲指定して入力する方法、範囲に名前を付けて入力する方法
は試したのですが、セルにグレーの色がつかない方法での入力を考えております
どうぞよろしくお願いいたします