自分なりにいろいろ試してみたのですが、どうしても理想とする形にできなくて…。
A~Iまで使用の列があり、その間入力したい列がA、D、E、G、と飛んでおります。
名前の定義を使ってセル指定で移動するには行数が100を超えるため上手くいかず、列指定にすると縦入力からになってしまい意味がありませんでした。
またシートを保護する方法も試したのですがオートフィルタが使えず、セルの非表示はそこに見たい結果が出るため入力して再表示してまた非表示で入力して…と二度手間になってしまいます。
オートフィルタを使えて、尚且つセルを飛ばして入力していくにはどのような方法がありますか?
入力はA1、D1、E1、G1、A2、D2…と行い、横移動はtab、縦移動はenterを使用で行ってました。
マクロしかないのかと思ってはいるのですが、今まで使ったことがないため設定の仕方がわからず躊躇してしまってました。
何か妙案がありましたら教えてください。
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
> 毎回ツールからマクロの実行を選ばなくてもいい方法
>(ショートカットキーの作成以外)
マクロの名前(#4 では Sample)を Auto_Open に書き換えます。
この名前がつけられたマクロはブックを開いたときに自動実行
されます。
さらに、#4 は現在アクティブなシート(ActiveSheet)に対して
実行するマクロですが、自動実行するとなるとある特定のシート
に対して保護を実行するようにした方が良いでしょうね。
少し修正します。
#4 でコピペしたマクロ全体を一度消去し、再度貼り付け直して
下さい。
Sub Auto_Open()
With Worksheets("Sheet1") ' <-- シート名で指定する
.Unprotect
.Protect UserInterFaceOnly:=True
If .AutoFilter Is Nothing Then
’.Range("A1:H1").AutoFilter ' フィルタ範囲を明示する場合
.UsedRange.AutoFilter
End If
.EnableAutoFilter = True
End With
End Sub
#5 ご回答で紹介されてます Change イベントを活用する方法も
良く使われる方法です。お好みでどうぞ(・∀・)
No.5
- 回答日時:
妙案かどうか分かりませんが、データ→フォーム で入力フォームを使う方法もありますが、あまり評判は良くありません。
使い勝手を良くするにはフォームのカスタマイズが必要です。かなり面倒なカスタマイズです。それよりもユーザーフォームを作った方が早いかもしれません。
実用的な方法としては、以下のようなコードを仕込んで入力したりしています。
凝って、入力方法の完璧さを追及する手もありますが、目的が本末転倒になるので、「便利になればいい」程度で使っています。
使い方
○以下は Sheet1 を使用している前提です。
●入力してEnter(またはTab)で、希望する次のセルに飛びます。A→D→E→G→次の行のA
ただし、入力しないでEnterだけ押すと次には飛びません(欠点)
●ツール→オプションの編集タブで、入力後にセルを移動するにチェックし、「右」にしておきます
●オートフィルターは問題なく使えるはずです
ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、
Microsoft Excel Objects の Sheet1をダブルクリックし、出てきたコードウインドウに下のモジュールをコピーして貼り付けます。
貼り付けが済んだら、シートに戻り、入力を開始します。
↓ここから
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
Select Case Target.Column
Case 1: Target.Offset(0, 3).Select '// A列
Case 4: Target.Offset(0, 1).Select '// D列
Case 5: Target.Offset(0, 2).Select '// E列
Case 7: Target.Offset(1, -6).Select '// G列
End Select
End Sub
↑ここまで
No.4
- 回答日時:
補足しておきます。
#2 で解説している EnableAutoFilter プロパティーの設定は、記録
されません。つまり、ブックを開きなおすとディフォルト値の False
に戻ってしまいます。
その都度、VBE で設定するのが面倒なら、やはりマクロを書いて、
それを実行するようにした方が良いですね。
#2 のサンプルはひとまず横に置いておき、下記のコードをお試しを。
1. [Alt]+[F11] で VBE を開く
2. [挿入]-[標準モジュール]
3. 下記のコードをコピペ
4. VBE を閉じる
5. [ツール]-[マクロ]-[マクロ] で実行
Sub Sample()
With ActiveSheet
.Unprotect
.Protect UserInterFaceOnly:=True
If .AutoFilter Is Nothing Then
’.Range("A1:H1").AutoFilter ' フィルタ範囲を明示する場合
.UsedRange.AutoFilter
End If
.EnableAutoFilter = True
End With
End Sub
この回答への補足
ありがとうございます。
シートを保護した状態でオートフィルタが使えるようになりました!!
ただ、一度フォルダを閉じてしまうと、マクロを有効にするにチェックを入れてもまたツールからマクロの実行を選ばないといけないようで…。
毎回ツールからマクロの実行を選ばなくてもいい方法(ショートカットキーの作成以外)というのはあるのでしょうか?
何度も質問ばかりで申し訳ありませんが、もしご存知でしたらお願いします…。
No.3
- 回答日時:
> OSが2000なのですが、何か関係ありますか?
関係ありません。Excel も Excel97 については忘れてしまいましたが、
Excel2000 以降であれば問題ないはずです。
>> オートフィルタはシート保護解除の状態で予め設定しておいて下さい。
この点は大丈夫ですか?
シートを保護した状態で、オートフィルターを設定することはできません。
1. 保護解除された状態でオートフィルターを設定
2. シートを保護
の順番です。
それから、EnableAutoFilter プロパティーを設定したシートはあって
ますか?
以上、2点のご確認を。
No.2
- 回答日時:
こんにちは。
シートの EnableAutoFilter プロパティーを True にしておけば、
シート保護時でもオートフィルターが使用可能です。
1. [Alt]+[F11] を押して VBE を立ち上げる
2. 左側ツリーで対象となるシートをクリックして選択
3. [F4] を押して、プロパティーウインドウを開く
4. プロパティーウインドウにある
EnableAutoFilter の値を True にする
5. VBE を閉じる
以上です。コードを書く必要はありません。オートフィルタは
シート保護解除の状態で予め設定しておいて下さい。
あとは、わかりますよね?
なお、シート保護・解除と上記の設定をひとつのマクロで実行する
コードは下記のようになります。ご参考までに。
' // << 参考コード >> 貼り付け先:標準モジュール
' // シート保護・解除を実行する度切り替える(パス無し限定)
Sub ProtectSwitch()
On Error GoTo ERROR_HANDLER
With ActiveSheet
If .ProtectContents Then
.Unprotect
Else
.Unprotect
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True
End If
End With
Exit Sub
ERROR_HANDLER:
MsgBox Err.Description
End Sub
この回答への補足
ありがとうございます。
さっそく
1. [Alt]+[F11] を押して VBE を立ち上げる
2. 左側ツリーで対象となるシートをクリックして選択
3. [F4] を押して、プロパティーウインドウを開く
4. プロパティーウインドウにある
EnableAutoFilter の値を True にする
5. VBE を閉じる
というのをやってみたのですが、何か操作を間違っているのかオートフィルタは使えませんでした…。
OSが2000なのですが、何か関係ありますか?
No.1
- 回答日時:
なんか、良く理解できないのでが??。
横移動はtab、縦移動はenterを使用で ダメなんですか??。
オートフィルタを使用するには、左端の行に値が、入っていれば
利用できますが、
注意; 空白行がないこと。
もっとも なければ、入れて 後で 削除すれば、良いですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
EXCELでマクロを使わずに図形の...
-
エクセルを開いたとき常に同じ...
-
マクロを複数シートに実行する...
-
複数シートの保護・解除
-
VBA シート名を先月の名前に...
-
EXCELでワークシートを開いたら...
-
EXCELの起動時に常に同じ...
-
エクセルでシートの並び替えで...
-
VBA(エクセル)でコピー+文字...
-
エクセル2013でマクロのボタン...
-
エクセル ヘッダー(フッター)...
-
エクセルで複数のSheetを一括フ...
-
マクロ 各シートの決められた位...
-
Excelのコマンドボタンでアクセ...
-
【Excel】複数あるシート上の住...
-
VBAであるマクロを全てのシート...
-
EXCELのエラー
-
マクロを特定の複数シートで実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
EXCELでマクロを使わずに図形の...
-
Excelのマクロの呼び出し元を知...
-
マクロを特定の複数シートで実...
-
メッセージボックスでシート名...
-
マクロ 各シートの決められた位...
-
エクセルの複数のワークシート...
-
VBA シート名を先月の名前に...
-
EXCELの起動時に常に同じ...
-
EXCELのエラー
-
エクセルで、マクロボタンの表...
-
エクセルVBAでcmbBoxのプロパテ...
-
VBAで条件によってシート見出し...
-
エクセル・複数のシートを一度...
-
エクセルで回数をカウントする...
おすすめ情報