![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
AI セルにコマンドボタンを置いて、下記のマクロを割り当てています。
プロパティで [ セルに合わせて移動やサイズを変更しない ] を選択しているのですが、マクロによるソート後、AI セルから列方向に移動してしまいます。
ソート後も AI セル から移動しないようにするためにはどのようにすれば良いでしょうか?
' Macro3 Macro
'
ActiveSheet.Unprotect
Cells.Select
ActiveWorkbook.Worksheets("語彙").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("語彙").Sort.SortFields.Add Key:=Range(Range("A1"), Cells(1, Columns().Count).End(xlToLeft)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("語彙").Sort
.SetRange Range("A1").CurrentRegion
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect
No.3ベストアンサー
- 回答日時:
> Private Sub ボタン3_Click() としたのですが、
> ボタン名をマクロが認識しなくなりました。
??? 状況が分からなかったです。 過去の質問をみたら、
https://oshiete.goo.ne.jp/qa/12779188.html
《これをボタンに割り当てたいと思うのですが、》
Sub Macro3()
:
:
:
end Sub
との記載がありました。
《AI セルにコマンドボタンを置いて、下記のマクロを割り当てています。》
これを、私が読み間違えて、ActiveXコントロールのことかと思ってしまったのです。
https://allabout.co.jp/gm/gc/297821/
「フォーム」ツールバーの「ボタン」であれば、
「Private Sub CommandButton1_Click()」でも
「Private Sub CommandButton3_Click()」でもダメです。
標準モジュールにマクロを記載します。
その際、「Sub ボタン3_Click()」にして下さい。
「Private Sub ボタン3_Click()」ではだめです。
次に、シート上に、「⇒挿入 ⇒図形」でボタンを作って、図形を右クリックして、「マクロの登録」で、「ボタン3_Click」を選択して下さい。
ご回答ありがとうございます。
Activexコントロールのボタンに替えてみたら上手くいきました!
#1のコード使わせていただきます。
お手数かけました。
またよろしくお願いします。
No.2
- 回答日時:
こんにちは
対処法としては、
1)実行後、ボタンの位置をA1の位置に戻す
(既回答にある方法)
2)1行目(または1列目)をソートの対象から外すレイアウトにする
以下はトリガーを変える方法ですが・・
3)ボタンではなくエクセルのリボンのメニューから実行
4)ボタンではなくショートカットキーで実行
5)ボタンではなくコンテキストメニューから実行
などが考えられると思います。
No.1
- 回答日時:
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect
bbh = ActiveSheet.Shapes.Range(Array("CommandButton1")).Left
' この「bbh」は、最後に使う。
Cells.Select
ActiveWorkbook.Worksheets("語彙").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("語彙").Sort.SortFields.Add Key:=Range(Range("A1"), Cells(1, Columns().Count).End(xlToLeft)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("語彙").Sort
.SetRange Range("A1").CurrentRegion
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Shapes.Range(Array("CommandButton1")).Left = bbh
' ここで、コマンドボタンの位置を当初に戻す
ActiveSheet.Protect
End Sub
ご回答ありがとうございます。
Private Sub ボタン3_Click()
としたのですが、ボタン名をマクロが認識しなくなりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) ※初心者です マクロVBAについて 3 2022/11/05 12:53
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
Excelマクロ セルを行頭に移動
-
エクセルでセルをクリックする...
-
マクロのデータ削除
-
VBAでの SendKeysの変数指定方法
-
結合されたセルの移動 VBA
-
エクセルマクロで「セルのサイ...
-
VBA Rangeの足し算
-
EXCELに画像を貼り付けマクロの...
-
コマンドボタンを固定したい
-
ダブルクリックでセルに色をつ...
-
Excel VBA:フォーム←→セルのア...
-
写真貼り付けを3列で折り返したい
-
エクセルでスピンボタンとスク...
-
マクロを教えてください
-
【VBA】アクティブセルだけ背景...
-
excel マクロでの特殊文字入力方法
-
Excelのマクロについて教えてく...
-
VBAコードについて教えてくださ...
-
エクセル マクロ オートフィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
Excel VBA:フォーム←→セルのア...
-
VBAでの SendKeysの変数指定方法
-
Excelマクロ セルを行頭に移動
-
マクロのデータ削除
-
ダブルクリックでセルに色をつ...
-
IF関数で違う値もTRUEになる
-
ファイルサーバー上のexcelファ...
-
エクセルマクロで「セルのサイ...
-
Excel VBA で色付きのセルの値...
-
【VBA】アクティブセルだけ背景...
-
excel マクロでの特殊文字入力方法
-
セルをクリックしたら色を変え...
-
(エクセルVBA)セルを左クリッ...
-
【マクロ】1つのセルから結合...
-
ExcelVBA コンボボックスに入力...
-
Excelのマクロで選択している行...
-
VBA Rangeの足し算
-
エクセル:セルの色のコード番...
おすすめ情報