プロが教える店舗&オフィスのセキュリティ対策術

EXCELのマクロについて教えてください。
検索により選択した複数のセルを
行単位で印刷することはできるでしょうか?

たとえば住所録を作ったとして
どこかに「東京都」と入れ
ボタンを押すと
東京都が含まれる複数の行を
1枚で印刷できるようにしたいです。
なお、検索については特定の列のみを
対象にします。
引っ越し前の住所が別の列に書かれていても
これは無視するという感じです。

マクロについてはまったくの初心者です。
よろしくお願いいたします。

A 回答 (4件)

>この式を入れたことによりシートの保護ができなくなったのですが



マクロと保護が出来ない事とは関係ありません。
保護されたシートに対してマクロを実行すると、オートフィルタや保護されたセルの操作等はできなくなります。

それを回避するには、
Sub test()
ActiveSheet.Unprotect
'処理
ActiveSheet.Protect
End Sub
のように、処理前に保護の解除を行い、終了後に保護を設定する方法があります。
    • good
    • 0
この回答へのお礼

おかげさまで
シートの保護もできるようになりました。
パスワードもマクロを使って
自動的に付けたりはずしたりすればいいのですね。

いろいろとありがとうございました。
またマクロで困ったときは質問させていただきます。
そのときはどうぞよろしくお願いいたします。

お礼日時:2008/02/13 12:40

>日付を指定してオートフィルタにかけようとすると何も選択されません。



この場合は、ちょっと微妙な問題になって来ます。
セルの表示と内容(実データ)に違いがあると検索されません。
日付と言うのはシリアル値で管理されているので、この部分を把握していないと正しく動作しない可能性があります。
データ列は日付形式のデータが入って居るのが基本です。

A1に、1/1 と表示されて居る場合、
2008/1/1
2007/1/1
  :
1900/1/1
など様々な値が考えられますから、フィルタで一致データを探すには、西暦から正しく入れる必用があります。
2008/1/1 10:10 と時刻情報も付加されたデータなら、これも不一致の原因になります。
(2008/1/1 0:00 ならば 2008/1/1 で探せます。)

日付をyyyy/m/d など、暦年を4桁で入れる。
Criteria1:=Range("A1").Text
とか
Criteria1:=Format(Range("A1").Text,"m/d")
に変更してみる。

で、いかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございました!
Criteria1:=Range("A1").Text
の方法により
うまく操作できるようになりました。

一つだけ確認させてください。
この式を入れたことにより
シートの保護ができなくなったのですが
これはマクロを使うことにより
よくあることなのでしょうか?
特に困っているわけではありませんが
うっかり誰かに消されたりするかもしれないので
もしできましたら
マクロとシート保護の関係について
お教えください。
ちなみにExcel2000を使っております。

お礼日時:2008/02/13 07:38

>Criteria1:="東京"



Criteria1:=Range("A1").Value

のようにしてみて下さい。

この回答への補足

ありがとうございます。
おかげさまで、文字についてはうまくいきました。
ただ、日付を指定してオートフィルタにかけようとすると
何も選択されません。
何度も申し訳ありませんが
解決方法をよろしくお願いいたします。

補足日時:2008/02/12 12:32
    • good
    • 0

検索では無くてオートフィルタになると思います。


まずは記録マクロで行って見てください。

この回答への補足

オートフィルタのことを忘れていました。
ごめんなさい。

マクロを記録してみたところ
Selection.AutoFilter Field:=2, Criteria1:="東京"
となりました。
問題は
Criteria1:="東京"
の部分です。
"東京"

"A1"
のように参照形式にしてもうまくいきません。
この部分をどうしたらよいのでしょう・・・
よろしくお願いいたします。

補足日時:2008/02/10 21:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!