プロが教えるわが家の防犯対策術!

お世話になっております。

調べてみたのですが 載っていなかったようなので
質問させていただきます。

Excelのステータスバーを右クリックすると「合計」とか「データの個数」の表示を切り替えられると
思いますが、この切り替えをキーボードでやるには どのようにしたら良いのでしょうか?

または 不可能なのでしょうか?

宜しくお願い致します。

A 回答 (8件)

選択範囲を変えても前のセル範囲の計算結果が残っている、という


ことでしたら、ショートカットキーではなく、シートの
SelectionChangeイベント
で行うといいと思います。

あるいは、WaitやAPIのSleepで指定時間経過後にステータスバー
の表示をクリア、でもいいですね。
でも、連続してショートカットキーで動作させたときにどういう影響が
出るかは分かりません。

SelectionChangeイベント
でステータスバーの表示をクリア、がいいかもしれません。
    • good
    • 0

>ご教示いただいた内容を貼り付けてみましたが、ちょっとイメージしていたのと違って


>「ずっと表示し続ける」という感じになるのでしょうか。

オートカルクも選択セルに数値が入っていたら、表示されたままになってますが。
あなたがイメージされているのがどういうものか提示しないと回答のしようがありません。

>ためしに適当な文字を空白のセル込みで10個入力し(11行にまたがって)VBE画面から実行をしてみましたが 「選択個数」のみ「11」を表示され
>他は「0」のままとなっております。

数値が選択範囲にないのであれば、選択個数以外は「0」になるのは当然です。
数値以外は足したり平均を出したり出来ないので。エクセル以前に算数、数学の世界です。
    • good
    • 0
この回答へのお礼

すみません。

何度もありがとう御座います。

ご教示いただいた内容を元にユーザーフォームで解決しようと考え中です。

ユーザーフォーム挑戦中にもまたここで質問すると思いますので
その際には またお願いします。

ありがとう御座いました。

お礼日時:2009/01/31 12:48

#5の修正


×マスス・シュミレーションでキーボードで...KeyPointer
 ~~~~~~ 
マウス・シュミレーション

   ↓
http://www.vector.co.jp/magazine/softnews/020320 …
キーボードのみでほとんどのマウス操作を可能にするユーティリティ

Excelというよりも、Windowsでは、マウスで行うものは、マウス処理の延長というところかもしれません。他に、キーボードマクロというものがありますが、それは、位置の問題が出てきます。
    • good
    • 0
この回答へのお礼

ご回答ありがとう御座います。

質問後も色々調べたのですが、やはり そういうのは無いようですね。。。

ベクターのページも見ましたが この方も「無いから作った」と言ってますね。

面倒ですがユーザーフォームで解決しようかと考え中です。

ありがとう御座いました!!

お礼日時:2009/01/31 10:06

こんばんは。



インターネット検索してみますと、「オートカルクのショートカットはありませんか?(英語)」という質問が出てきます。その受け答えをみると、残念ながら、そのようなキー設定はありませんというものだけですね。

マニアの日本人ですと、ハックして操作する人もいるのかもしれませんが、それは、私は、どうかと思います。

もともと、マスス・シュミレーションでキーボードで再現すれば可能ですが、それは、興味があれば試してみてもよいと思います。(例えば、KeyPointerというものがあります。)
    • good
    • 0

先ほどは全部表示するものをご提示しましたが、もちろん合計だけ、平均だけ、


というのも可能です。

ショートカットキー一覧で使われていないショートカットキー(Ctrl+Lのような)
を探して割り付けます。

なお、AltキーやCtrlキーはVBAでは%とか^とかになりますので注意が必要です。
VBAヘルプで
SendKeysメソッド
を調べてみてください。そこに各キーの記述方法が載っています。
    • good
    • 0

>(出来れば他の方法がいいのですが、ご存知ありませんか。

。)

ネットでエクセル関係のショートカットキー関連の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
    • good
    • 0
この回答へのお礼

何度もありがとう御座います。

ご教示いただいた内容を貼り付けてみましたが、ちょっとイメージしていたのと違って
「ずっと表示し続ける」という感じになるのでしょうか。

ためしに適当な文字を空白のセル込みで10個入力し(11行にまたがって)VBE画面から実行をしてみましたが 「選択個数」のみ「11」を表示され
他は「0」のままとなっております。

どの辺を修正すればよろしいのでしょうか。

お手数お掛けしますが、宜しくお願い致します。

お礼日時:2009/01/31 10:22

#1です。

間違いがありました。

>If c.HasFormula = False Then fomlcnt = fomlcnt + 1
↓に修正です。
If c.HasFormula = True Then fomlcnt = fomlcnt + 1
    • good
    • 0
この回答へのお礼

ご回答ありがとう御座います。

やはりVBAに不可能はないみたいですね。

ご回答いただいた内容を拝見してマウスを使ってマクロの記録で
ショートカットを作ろうとしたのですが出来ませんでした。

&の間を任意で好きな文字に変更すればOKでしょうか。

(出来れば他の方法がいいのですが、ご存知ありませんか。。)

お礼日時:2009/01/30 20:24

キーボードで切り替え、ではないですが・・・。



ステータスバーの表示を自作する、ではだめですか?
↓はシートモジュールに記述します。
表示がごちゃごちゃしてみにくいですが。


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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!