No.4ベストアンサー
- 回答日時:
シート保護を使用すればできるけど…それはご存知ですか?
①セルを右クリックして → セルの書式設定 → 「保護」タブで「ロック」のチェックを外す。
②シートのタブを右クリックし → シートの保護 →
「ロックされたセル範囲の選択」のチェックを外す
「ロックされていないセル範囲の選択」のチェックを入れる
移動方向は、オプション 詳細設定 編集オプション で指定されたものになります。
(右側に順に移動して行って、入力可能なセルが無くくなったら下の行に移動する、みたいになります。)
縦横無尽に移動先を設定することはできません。
あちこちにセルを移動するのであれば、
入力用シートを作ってしまい、その情報を参照する形で他のシートに表示させるという方法もありますね。
=入力用!A2
みたいに。
早々のご回答ありがとうございます。
なるほど!
計算式の入っているセルの保護と入力セルの指定は汎用しているのですが、セルの選択に使用する発想がありませんでした。
早速実際の表で試してみます。(試さなくても分かる気がしますが)
目から鱗でした。
=入力用!A2は最後の手段と思っていましたが、これだと別の問題が見えているので(マクロでなら)何とかならないかと質問してみました。
No.8
- 回答日時:
複数のシートがあるようで…
少し手を加えましたが、説明も手抜きで申し訳ないのですが、入力セルの検索部分をfunctionに外出ししてしまえばもう少しスッキリします。
Private Sub Worksheet_Change (ByVal Target As Range)
If str Preval <> Target. Value Then ‘セルの値が変わっていたら
For iCntCol = iPreCol + 1 To 50 ‘とりあえずここではMAX列、行それぞれ50とします。
For iCntrow = iPreRow To 50
If Cells(iCntCol, i CntRow). Interior. Color Index = 6 Then ‘セル背景が黄色の時
Cells(i CntCol, i CntRow). Select ‘選択する
Exit Sub
End If
Next
iPreCol = 0
Next
‘次のシートがあれば次のシートへ…やった事がないので上手く移動してくれるかどうか…
If ActiveSheet.Index <> Worksheets.Count Then
ActiveSheet.Next.Activate
‘最初の入力セルに移動するならココに上のような処理を書く
End If
End If
End Sub
これも手当たり次第に種々試してみましたが先回答とおなじ結果でした。
確認が遅れ何度もお手数をおかけし申し訳ありませんでした。
やはり本件は保護が使いやすく変更への対応に優れている(当方のレベルにあっている)と思います。
No.7
- 回答日時:
シート保護の方法は眼から鱗でしたね!
そのやり方が一番良いかもしれません。
乗り掛かった船ですので、マクロの方も記載させていただきます。
帰りの電車で携帯のメモ帳打ち込んだので、不備がありましたら申し訳ありません。
適当に調整していただけたらと思います。
入力するセルに色なりコメントなりでマーカーつけておけば、フォーマットが変わってもマーカーの位置を変えたり増やしたりすれば簡単にメンテナンスできると思いました。
ここでは入力セルが黄色の前提で記述しています。
Private i PreCol As Integer
Private i PreRow As Integer
Private strPreVal As String
Private Sub Worksheet_Change (ByVal Target As Range)
If str Preval <> Target. Value Then ‘セルの値が変わっていたら
For iCntCol = iPreCol + 1 To 50 ‘とりあえずここではMAX列、行それぞれ50とします。
For iCntrow = iPreRow To 50
If Cells(iCntCol, i CntRow). Interior. Color Index = 6 Then ‘セル背景が黄色の時
Cells(i CntCol, i CntRow). Select ‘選択する
Exit Sub
End If
Next
iPreCol = 0
Next
End If
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
‘セルを選択したときにセル情報を保持する
iPreCol = ActiveCell. Column
iPreRow = ActiveCell. Row
strPreVal = ActiveCell. Value
End Sub
ご回答ありがとうございます。
動作確認してみたのですが、うまく動かず。。。。
当方のレベルでは使いこなせないレベルだと思われます。
お手数をおかけし申し訳ありませんでした。
No.6
- 回答日時:
そんなことにいちいちマクロを使わなくても 入力欄を別に作れば
解決します。
縦一列に入力欄を作っておいて そのセルに入力したものを該当す
る箇所に数式でリンクすればいいでしょう。
印刷用書式に直接入力して良いことなんて欠片もありません。
早々のご回答ありがとうございます。
質問に発生するであろう課題を明示していないことをお詫びします
#No4さんの回答に記載したように、
=入力用!A2は最後の手段と思っていましたが、これだと別の問題が見えているので(マクロでなら)何とかならないかと質問してみました。
。
No.5
- 回答日時:
入力するセルが決まっているなら、入力順に各セルをCtrlを押しながら選択していき全部選択した状態で名前ボックスに何か名前をつければ次からは名前ボックスからその名前を選べばそのセルが選択されます。
入力したらEnterを押せば次のセルにアクティブセルが移動します。
選択した順に移動するので変則的な移動にも対応できます。ただし入力中に別のセルをクリックするなどで選択が外れると移動ができなくなりますが。
(まぁ、また名前を選べばいいんですが開始位置が元にもどる)
名前の管理はほとんど使ったことが無く思いつきませんでした。
やってみて納得です。
名前の選択をマクロボタンにして、「入力開始」にしておけば期待の動きが得られました。
このマクロに、全部の入力セルの自動削除、を追加してバッチリです。
最終的にはpdfファイルでの保存~メール送信(既存マクロあり)までを1ボタンもしくは単位操作毎のマクロボタン化すれば完成です。
後は先のご回答の非保護セルの選択とどちらにするか入力者に確認して決めます。
No.3
- 回答日時:
早々のご回答ありがとうございます。
面白い! こんな機能があったとは。
但し、今回の期待する動きとは違っていますが、非常に参考になりました。
何かの機会に使わせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Excel(エクセル) エクセルについて質問です。 8 2022/05/31 16:00
- Excel(エクセル) 指定値をマクロで検索&シート移動 2 2022/04/27 23:29
- マウス・キーボード テンキーの設定がおかしくなっています。 5 2023/08/09 15:35
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Excel(エクセル) エクセルで日付に続けて連番を表示したい 6 2022/05/25 23:33
- Excel(エクセル) Excel ヘルプの[ロック解除]、<c0>、</c0> の意味は何ですか? 1 2023/02/20 16:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じセルに箇条書きをし...
-
A1セルに入力したら、入力時間...
-
IF関数で0より大きい数値が入力...
-
参照先セルに値が入っていない...
-
エクセルで既に入力してある文...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
Excel マクロ モジュラス43 vba
-
エクセルで時間の判定をしてい...
-
エクセルで複数の条件で掛け算...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセルの数式がかぶって、選...
-
空白でないセルの値を返す方法...
-
エクセルで10分ごとの時刻の...
-
バーコードが読み取れない原因...
-
excel 関数にて文字を0として認...
-
Excelで配列数式を入力できない
-
エクセルのセル空白時にセルを...
-
EXCELのセル上のURLを...
-
Excelでセルに入力されたカラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
Excel:文字と数字の組合せ、次...
-
エクセルで既に入力してある文...
-
値を入力後、自動的にアクティ...
-
エクセルの数式がかぶって、選...
-
エクセルで時間の判定をしてい...
-
空白でないセルの値を返す方法...
-
Excelでセルに入力されたカラー...
-
yyyy/mm/ddからyyyy/mmへの変換
-
入力したところまでを自動的に...
-
excel 関数にて文字を0として認...
-
バーコードが読み取れない原因...
-
エクセルで複数の条件で掛け算...
-
ExcelVBAでセルを編集状態にす...
-
エクセルで、特定のセルの内容...
-
【vba】指定範囲の中に任意の文...
-
エクセルで10分ごとの時刻の...
おすすめ情報
早々のご回答ありがとうございます。
マクロでできそうな気がしての質問なのですが、当方全く知見なく困っています。
ご回答のchangeイベントなるものを調べてみて、確かにできそうな気がするのですが、「色を変える」等の例があるものの、セル移動に関するコードの記載例がなく困って(止まって)しまいました。
もしできれば,A1からB5,更にB5からZ10に飛ぶ例をご教授いただけないでしょうか?
おんぶにだっこですみません。