【エクセル2000/マクロ?】

B9~J9まで表見出しが入力されており、B10~J?(データ行は随時増える)までデータが入っています。
クリック1発で入力済の範囲を並び替えられる「何か」をガイドしてください。ソートキーはB列(日付)を昇順にしたいと思います。

なお、VBやエクセルのマクロを使ったことがありません。このエクセルでVBが使えるかどうかもわかりません。そちら方面になる場合は詳しくお願いします。

お役立ち度で配分させていただきます。どうぞよろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2009/03/05 19:09:25
  • 終了:2009/03/06 13:40:49

ベストアンサー

id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/05 20:17:07

ポイント60pt

先に提示した処理はデータが入っている範囲を全てB列をキーに全部並び替えるマクロなので、B列~J列でデータの入っている行をボタンで並び替えに変更しました。

  • ボタン

① http://www11.plala.or.jp/koma_Excel/contents4/mame4034/mame40340...

こんな感じでボタンをシート上に作る。

② 右クリックでコードの表示を選択。

③ 出てくる画面の

Private Sub CommandButton1_Click()

End Sub

こんなのを

Private Sub CommandButton1_Click()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 2).End(xlUp).Row
    Range("B9:j" & lastRow).Sort Key1:=Range("B10"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
End Sub

コピペして、こんなのに変更

④ 右上の×で閉じて(先の回答で間違えて左上と書いてました)、デザインモードの終了(三角定規と鉛筆のアイコン)をクリック。で、ボタンを押すと並び替え実行。

id:naleringar

ありがとうございます。ボタン作成できました。早速押してみたのですが、

コンパイルエラー、名前つき引数が見つかりません となります。

「DataOption1:=」が反転された状態です。

回答数を増やしておきます。よろしくお願いいたします。

----

コメント補足ありがとうございます!

1クリックで動きましたー! 

2009/03/06 09:44:26

その他の回答(1件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/05 19:34:57

ポイント30pt

データを入力する過程でシートがクリックされることがあるので、クリック1発でというのは実用的に問題があります。

変わる方法として、

  • ショートカット

① ツール→マクロ→新しいマクロの記録で、ショートカットキーのところに適当なキーを入れてOK。

② そのまま記録の終了の四角いボタンを押す。

③ Alt+F11を押すとVBEが起動する

④ 出てくる画面の

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/3/5  ユーザー名 : hogehoge
'

'End Sub

こんなのを、コピペで

Sub Macro1()
    ActiveSheet.UsedRange.Sort Key1:=Range("B10"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
End Sub

こんなのに変える。

⑤ 左上の×で閉じて、後は先ほどのショートカットで並び替え。


  • ダブルクリック

① シートの下の名前のところを右クリックして「コードの表示」を選択

② 出てくる画面に以下をコピペ

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ActiveSheet.UsedRange.Sort Key1:=Range("B10"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
End Sub

  • 右クリック

① シートの下の名前のところを右クリックして「コードの表示」を選択

② 出てくる画面に以下をコピペ

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    ActiveSheet.UsedRange.Sort Key1:=Range("B10"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
End Sub

  • エクセルの操作

① 並び替える範囲を選択。

② 昇順で並び替えアイコンをクリック。(無ければメニュー→データ→並び替えを選択)

id:naleringar

ありがとうございます。

ご回答だと、ソートキー及び条件?を設定していただいているのかと思いますが、

並び替える範囲を「B10..J(入力済のどこか?)」まで設定しなおしてくれてから、ソートを実行する

というあくしょん?を、ユーザが作ったボタンないし「何か」に貼り付け・・・よって、クリック1発という表現に・・・というのを想像しています。

どうぞよろしくお願いいたします。

2009/03/05 19:57:07
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/05 20:17:07ここでベストアンサー

ポイント60pt

先に提示した処理はデータが入っている範囲を全てB列をキーに全部並び替えるマクロなので、B列~J列でデータの入っている行をボタンで並び替えに変更しました。

  • ボタン

① http://www11.plala.or.jp/koma_Excel/contents4/mame4034/mame40340...

こんな感じでボタンをシート上に作る。

② 右クリックでコードの表示を選択。

③ 出てくる画面の

Private Sub CommandButton1_Click()

End Sub

こんなのを

Private Sub CommandButton1_Click()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 2).End(xlUp).Row
    Range("B9:j" & lastRow).Sort Key1:=Range("B10"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal
End Sub

コピペして、こんなのに変更

④ 右上の×で閉じて(先の回答で間違えて左上と書いてました)、デザインモードの終了(三角定規と鉛筆のアイコン)をクリック。で、ボタンを押すと並び替え実行。

id:naleringar

ありがとうございます。ボタン作成できました。早速押してみたのですが、

コンパイルエラー、名前つき引数が見つかりません となります。

「DataOption1:=」が反転された状態です。

回答数を増やしておきます。よろしくお願いいたします。

----

コメント補足ありがとうございます!

1クリックで動きましたー! 

2009/03/06 09:44:26
  • id:SALINGER
    失礼しました。
    Excel2000には、DataOption1が無いので、直前のコンマから
    , DataOption1:=xlSortNormal
    を削除してください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません