- ベストアンサー
Excelショートカット(下付き)
ExcelにはWordのように自分でショートカットを作れないのでしょうか? 入力するときに、「下付き」を良く使うのですが、その都度文字を 選択してセルの書式を出して・・・とやっていてとても面倒です。 ショートカットがつくれないにしても、せめてツールバーに出せない でしょうか? 大抵のものはツールバーに出せるのに、下付き だけはいくら探してもありません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プロパティ系のコマンドは外だしはつらいでしょうね。 マクロに登録してマクロボタンを作成してみては?
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 基本的には、Wordのようなショートカットは、Excelの一般的なマクロの範疇では出来ません。それは、一文字選択した段階で、Excelでは、【入力待ち】の状態になって、マクロが利きません。 だから、一旦、入力が終わった状態で、セルを選択して行わなくてはなりません。 これは、文字の最後尾を下付き、上付きにするマクロです。 時々、Userform で変更させるユーティリティを作る人がいますが、私には、それは、非効率的だと思います。Userform の起動時間やら手間を考えたら、ショートカットのほうが速いです。 このマクロは、個人用マクロブックの標準モジュールに登録してください。 ショートカットは、ツール-マクロ-マクロで、 マクロ名(M) で、名前を選択-オプション(O) で、ショートカットキー(K) Ctrl+ □ を登録します。 なお、書式の一種ですから、最後尾の文字を替えた後は、そのまま入れると、その書式は継続されます。 '個人用マクロブックの標準モジュール '----------------------------------------- Sub SubScriptChange() Dim mySize As Double Dim intLen As Integer '下付き Application.ScreenUpdating = False With ActiveCell If .Value <> "" And VarType(.Value) = vbString Then ' .Value = Trim(.Value) 'Trim は必要ならいれてください。 mySize = .Font.Size intLen = Len(CStr(.Value)) For i = 1 To intLen With .Characters(Start:=i, Length:=1).Font .Superscript = False .Size = mySize If i = intLen Then .Subscript = True Else .Subscript = False End If End With Next End If End With Application.ScreenUpdating = True End Sub '個人用マクロブックの標準モジュール Sub SuperScriptChange() Dim mySize As Double Dim intLen As Integer '上付き Application.ScreenUpdating = False With ActiveCell If .Value <> "" And VarType(.Value) = vbString Then ' .Value = Trim(.Value) 'Trim は必要ならいれてください。 mySize = .Font.Size intLen = Len(CStr(.Value)) For i = 1 To intLen With .Characters(Start:=i, Length:=1).Font .Subscript = False .Size = mySize If i = intLen Then .Superscript = True Else .Superscript = False End If End With Next End If End With Application.ScreenUpdating = True End Sub
お礼
ありがとうございました。やはりExcelで入力をあれこれ 操るのは難しいというか、本来の趣旨ではないですね。 マクロも書いていただいたのですが、普通にコツコツとやることに なると思います。 ありがとうございました。
お礼
マクロは使ったことがないので、ちょっと遠慮したいのです。 ありがとうございました。