
自分なりにいろいろ試してみたのですが、どうしても理想とする形にできなくて…。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) エクセルで日付に続けて連番を表示したい 6 2022/05/25 23:33
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルで各シートに1~12月を...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
ExcelのSheetに作られたMacro1...
-
エクセルの複数のワークシート...
-
マクロを特定の複数シートで実...
-
VBAで条件によってシート見出し...
-
エクセル 一括保護
-
エクセルシートのセルに現在時...
-
Excelで,特定のシートを開いた...
-
Excelマクロ/選択したシートを...
-
【Excel】複数あるシート上の住...
-
エクセルでシートの並び替えで...
-
全てのシートから特定文字を含...
-
Excelマクロ(Range)につ...
-
マクロでのシートコピー数制限?
-
マクロ 各シートの決められた位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでマクロを使わずに図形の...
-
エクセルでシートの並び替えで...
-
EXCELでワークシートを開いたら...
-
マクロを特定の複数シートで実...
-
Excelのマクロの呼び出し元を知...
-
マクロ 各シートの決められた位...
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
エクセルで、マクロボタンの表...
-
メッセージボックスでシート名...
-
EXCELのエラー
-
Excelで,特定のシートを開いた...
-
エクセルの複数のワークシート...
-
シートを保護した時でも並べ替...
-
エクセルで回数をカウントする...
-
EXCELの起動時に常に同じ...
おすすめ情報