- ベストアンサー
Excelのマクロ 検索範囲を広げたい
マクロ初心者です。 マクロが入ってるExcelファイルがあるのですが、 マクロボタンを押しても結果がでないので、たぶんマクロの検索範囲が1列しかなってないみたいなので広げたいのですが、どうしたらよいでしょうか? Sub 検索準備() ' ' 検索準備 Macro ' ' Sheets("データ表").Select Range("A3:ES2002").Select Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal Sheets("検索表").Select Range("A4").Select ActiveCell.FormulaR1C1 = "=+R[1]C" Range("A4").Select Selection.Copy Range("B4:ES4").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("個人スキル").Select Range("D3:E3").Select End Sub Sub スキル検索() ' ' スキル検索 Macro ' ' ' Sheets("検索表").Select Range("A4:ES4").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1:ES4").Select Application.CutCopyMode = False Selection.Copy Sheets("計算表").Select ActiveWindow.SmallScroll ToRight:=-3 Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Range("F1:J149").Select Application.CutCopyMode = False Selection.Copy Range("L1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SmallScroll ToRight:=4 Range("L13:P149").Select Application.CutCopyMode = False Selection.Sort Key1:=Range("L13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal Range("L23").Select Sheets("個人スキル").Select Range("D3:E3").Select End Sub 検索準備ボタンと、スキル検索2種類ボタンがあります。 どこをいじくればよいのか分かりません。 検索表の検索範囲が表題を抜かして人の名前などが入ってる列が1列しかなってないので・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 人の名前などが入ってる列が1列しかなってないので・ Sub[検索準備]の範囲であるようには思いますが それがシート「何」の列「何」なのか、位は書いてね。 シートは4つですね。 1)データ表 2)検索表 3)個人スキル 4)計算表 どれを広げたいですか?
その他の回答 (1)
残念な「アドバイス」になってしまいますが……。 まず、質問文のマクロの主な動作を整理すると下記のような感じになります。 ●[検索準備]マクロがやっていること 1.[データ表]シートのA3:ES2002を、A列をキーに並べ替える。 2.[検索表]シートのA4:ES4に、直下のセルを参照する数式を入れる。 ●[スキル検索]マクロがやっていること 1.[検索表]シートのA4:ES4の数式の値を、値貼り付けで確定する。 2.[検索表]シートのA4:ES4の値を、[計算表]シートのA1:ES1に貼り付ける。 3.[計算表]シートのF1:J149の値を、L1:P149に貼り付ける。 4.[計算表]シートのL13:P149を、L列をキーに並べ替える。 というわけで、どちらのマクロも【"検索"らしきことはしていません】 マクロは並べ替えをしたり、検索キー(?)や結果(?)を転記しているだけで、 実際に検索処理をしているのは、[計算表]シートに入力されている数式だと思われます。 問題があるとすれば、おそらくそれらの数式の方ですし、 動作を変更するにしても、マクロではなくまず数式の方を変更する必要があります。 少なくとも、数式が何をどうしているのかわからない状態でマクロの方だけ直すことはできません。 「検索範囲を広げる」というのが、 「検索キーの入力欄を広げてOR検索あるいはAND検索したい」のか、 「検索対象となる範囲を広げたい」のかわかりませんが、 小手先の修正ではなくゼロから作るぐらいの覚悟と技術が必要になりそうな気配です。 以上ご参考まで。