• ベストアンサー

Excel2003 キーボードの操作

お世話になっております。 調べてみたのですが 載っていなかったようなので 質問させていただきます。 Excelのステータスバーを右クリックすると「合計」とか「データの個数」の表示を切り替えられると 思いますが、この切り替えをキーボードでやるには どのようにしたら良いのでしょうか? または 不可能なのでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.8

選択範囲を変えても前のセル範囲の計算結果が残っている、という ことでしたら、ショートカットキーではなく、シートの SelectionChangeイベント で行うといいと思います。 あるいは、WaitやAPIのSleepで指定時間経過後にステータスバー の表示をクリア、でもいいですね。 でも、連続してショートカットキーで動作させたときにどういう影響が 出るかは分かりません。 SelectionChangeイベント でステータスバーの表示をクリア、がいいかもしれません。

その他の回答 (7)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.7

>ご教示いただいた内容を貼り付けてみましたが、ちょっとイメージしていたのと違って >「ずっと表示し続ける」という感じになるのでしょうか。 オートカルクも選択セルに数値が入っていたら、表示されたままになってますが。 あなたがイメージされているのがどういうものか提示しないと回答のしようがありません。 >ためしに適当な文字を空白のセル込みで10個入力し(11行にまたがって)VBE画面から実行をしてみましたが 「選択個数」のみ「11」を表示され >他は「0」のままとなっております。 数値が選択範囲にないのであれば、選択個数以外は「0」になるのは当然です。 数値以外は足したり平均を出したり出来ないので。エクセル以前に算数、数学の世界です。

ookami1969
質問者

お礼

すみません。 何度もありがとう御座います。 ご教示いただいた内容を元にユーザーフォームで解決しようと考え中です。 ユーザーフォーム挑戦中にもまたここで質問すると思いますので その際には またお願いします。 ありがとう御座いました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

#5の修正 ×マスス・シュミレーションでキーボードで...KeyPointer  ~~~~~~  マウス・シュミレーション    ↓ http://www.vector.co.jp/magazine/softnews/020320/n0203201.html キーボードのみでほとんどのマウス操作を可能にするユーティリティ Excelというよりも、Windowsでは、マウスで行うものは、マウス処理の延長というところかもしれません。他に、キーボードマクロというものがありますが、それは、位置の問題が出てきます。

ookami1969
質問者

お礼

ご回答ありがとう御座います。 質問後も色々調べたのですが、やはり そういうのは無いようですね。。。 ベクターのページも見ましたが この方も「無いから作った」と言ってますね。 面倒ですがユーザーフォームで解決しようかと考え中です。 ありがとう御座いました!!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 インターネット検索してみますと、「オートカルクのショートカットはありませんか?(英語)」という質問が出てきます。その受け答えをみると、残念ながら、そのようなキー設定はありませんというものだけですね。 マニアの日本人ですと、ハックして操作する人もいるのかもしれませんが、それは、私は、どうかと思います。 もともと、マスス・シュミレーションでキーボードで再現すれば可能ですが、それは、興味があれば試してみてもよいと思います。(例えば、KeyPointerというものがあります。)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

先ほどは全部表示するものをご提示しましたが、もちろん合計だけ、平均だけ、 というのも可能です。 ショートカットキー一覧で使われていないショートカットキー(Ctrl+Lのような) を探して割り付けます。 なお、AltキーやCtrlキーはVBAでは%とか^とかになりますので注意が必要です。 VBAヘルプで SendKeysメソッド を調べてみてください。そこに各キーの記述方法が載っています。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

>(出来れば他の方法がいいのですが、ご存知ありませんか。。) ネットでエクセル関係のショートカットキー関連のHPをいくつか見てみましたが、 それらしきものは見当たりませんでした。 いちおう、ユーザー定義のショートカットキーの設定方法を書いておきます。 ↓は CtrlキーとLキーを同時に押したときに起動します。 'ThisWorkBookモジュール Private Sub Workbook_Activate() Application.OnKey "^l", "atcalc" End Sub Private Sub Workbook_Deactivate() Application.OnKey "^l" End Sub Private Sub Workbook_Open() Application.OnKey "^l", "atcalc" End Sub '標準モジュール Sub atcalc() Dim msgstr As String Dim numcnt As Long Dim fomlcnt As Long Dim c As Range Dim kei As Variant Dim avrgstr As String numcnt = 0 fomlcnt = 0 kei = 0 For Each c In Selection If IsNumeric(c.Value) = True Then If c.Value <> "" Then kei = kei + c.Value numcnt = numcnt + 1 If c.HasFormula = True Then fomlcnt = fomlcnt + 1 End If End If Next c If numcnt = 0 Then avrgstr = "-" Else avrgstr = kei / numcnt End If msgstr = "選択個数:" & Selection.Cells.Count & "/" & _ "数値個数:" & numcnt & "/" & _ "数値個数(数式除く):" & numcnt - fomlcnt & "/" & _ "選択合計:" & kei & "/" & _ "選択平均:" & avrgstr & "/" & _ "選択最大:" & WorksheetFunction.Max(Selection.Cells) & "/" & _ "選択最小:" & WorksheetFunction.Min(Selection.Cells) Application.StatusBar = msgstr End Sub

ookami1969
質問者

お礼

何度もありがとう御座います。 ご教示いただいた内容を貼り付けてみましたが、ちょっとイメージしていたのと違って 「ずっと表示し続ける」という感じになるのでしょうか。 ためしに適当な文字を空白のセル込みで10個入力し(11行にまたがって)VBE画面から実行をしてみましたが 「選択個数」のみ「11」を表示され 他は「0」のままとなっております。 どの辺を修正すればよろしいのでしょうか。 お手数お掛けしますが、宜しくお願い致します。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

#1です。間違いがありました。 >If c.HasFormula = False Then fomlcnt = fomlcnt + 1 ↓に修正です。 If c.HasFormula = True Then fomlcnt = fomlcnt + 1

ookami1969
質問者

お礼

ご回答ありがとう御座います。 やはりVBAに不可能はないみたいですね。 ご回答いただいた内容を拝見してマウスを使ってマクロの記録で ショートカットを作ろうとしたのですが出来ませんでした。 &の間を任意で好きな文字に変更すればOKでしょうか。 (出来れば他の方法がいいのですが、ご存知ありませんか。。)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

キーボードで切り替え、ではないですが・・・。 ステータスバーの表示を自作する、ではだめですか? ↓はシートモジュールに記述します。 表示がごちゃごちゃしてみにくいですが。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim msgstr As String Dim numcnt As Long Dim fomlcnt As Long Dim c As Range Dim kei As Variant Dim avrgstr As String numcnt = 0 fomlcnt = 0 kei = 0 For Each c In Selection If IsNumeric(c.Value) = True Then If c.Value <> "" Then kei = kei + c.Value numcnt = numcnt + 1 If c.HasFormula = False Then fomlcnt = fomlcnt + 1 End If End If Next c If numcnt = 0 Then avrgstr = "-" Else avrgstr = kei / numcnt End If msgstr = "選択個数:" & Selection.Cells.Count & "/" & _ "数値個数:" & numcnt & "/" & _ "数値個数(数式除く):" & numcnt - fomlcnt & "/" & _ "選択合計:" & kei & "/" & _ "選択平均:" & avrgstr & "/" & _ "選択最大:" & WorksheetFunction.Max(Selection.Cells) & "/" & _ "選択最小:" & WorksheetFunction.Min(Selection.Cells) Application.StatusBar = msgstr End Sub