A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
#1
マクロを使うとセキュリティ警告が出てしまうので、使いたくないのです。。。
---使いたくない意味が分かりません。
セキュリティレベルを下げるのも少し不安に感じています。
---何が不安なのかが分かりません。
マクロでしか制御できませんよ。
もし、小文字を大文字にしたいだけなら、
別セルに入力し、表示したいセルに
UPPER関数で大文字にしたら如何ですか。
(アルファベットの問題だけですよね?)
A1に大文字で表示したい場合
で、入力をZ1にするとき
A1に =upper(z1) と入力し、
A1には、CapsLock offで入力
No.4
- 回答日時:
>やはりマクロを使うしかないのでしょうか?
>できればマクロを使いたくないので。。。
>マクロを使うとセキュリティ警告が出てしまうので、使いたくないのです。。。セキュリティレベルを下げるのも少し不安に感じています。
私の知る範囲では、VBAを使う以外には、方法はないと思います。
Officeのバージョンがいくつかは分かりませんが、「セキュリティの警告」が出る出ないというのは、あまり意味がないと思います。そのVBAが問題を起こすか起こさないかは、本来は、そのコードの内容の問題で、「警告」が出たから、問題だということではありません。それに、ダイヤログを出さない方法もいくつか用意されています。一応、セキュリティ「中」で出さないレベルに収めるなら、「個人認証」という方法があります。
悪意のあるコードなのか、そうでないのかは、VBAがある程度読める人でなければ分かりません。悪意のないコードでも、問題が発生することがあります。Officeで、VBAを使わなくて済むなら、それに越したことはありません。Officeのバージョンやその注意書きを確認し、作者不明のVBAに手を出さなければ、ふつうは問題ないはずなのです。もし、心配ならアンチウィルスで、Officeをプロテクトするのが良いのであって、「セキュリティの警告」は、単なるマクロ付きだという「警告」であって、それは何の阻止にもなりません。それに、プログラムに詳しい人が、その気になれば、そのような警告を出さないようにすることは、簡単なことだからです。
VBAをもう少し勉強なさってください。
アドバイスありがとうございます。
私自身マクロについては初心者なものですから、このような質問が出てきたのかもしれません。
もう少し勉強します。。。
No.3
- 回答日時:
API関数は、間違って使うと、ハングしますので、注意してお使いください。
これは、シートモジュールに設置してください。
参考: http://support.microsoft.com/kb/177674/ja
'Declare Type for Calling API
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
'Win32 API Declare
Private Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" _
(lppbKeyState As Byte) As Long
'Constant
Const VK_NUMLOCK = &H90
Const VK_SCROLL = &H91
Const VK_CAPITAL = &H14
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Const VER_PLATFORM_WIN32_NT = 2
Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Sub Worksheet_Activate()
Dim OSVersion As OSVERSIONINFO
Dim CapsLockState As Boolean
OSVersion.dwOSVersionInfoSize = Len(OSVersion)
GetVersionEx OSVersion
Dim keys(0 To 255) As Byte
GetKeyboardState keys(0)
CapsLockState = keys(VK_CAPITAL)
'シートアクティベート
'CapsLock: Off to On
If CapsLockState <> True Then
'Win95/98
If OSVersion.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
keys(VK_CAPITAL) = 1
SetKeyboardState keys(0)
'WinNT
ElseIf OSVersion.dwPlatformId = VER_PLATFORM_WIN32_NT Then
'Simulate Key Press
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or _
0, 0
'Simulate Key Release
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or _
KEYEVENTF_KEYUP, 0
End If
End If
End Sub
Private Sub Worksheet_Deactivate()
Dim OSVersion As OSVERSIONINFO
Dim CapsLockState As Boolean
OSVersion.dwOSVersionInfoSize = Len(OSVersion)
GetVersionEx OSVersion
Dim keys(0 To 255) As Byte
GetKeyboardState keys(0)
CapsLockState = keys(VK_CAPITAL)
'シート・ディアクティベート
'CapsLock: On to Off
If CapsLockState Then
'Win95/98
If OSVersion.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
keys(VK_CAPITAL) = 0
SetKeyboardState keys(0)
'WinNT
ElseIf OSVersion.dwPlatformId = VER_PLATFORM_WIN32_NT Then
'Simulate Key Press
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
'Simulate Key Release
keybd_event VK_CAPITAL, &H45, KEYEVENTF_EXTENDEDKEY _
Or KEYEVENTF_KEYUP, 0
End If
End If
End Sub
参考URL:http://support.microsoft.com/kb/177674/ja
No.2
- 回答日時:
Excelのマクロは使えますでしょうか?
以下の方法をお試しください。
1) 目的のブックを開きます。
2) Alt + F11キーを押して、Microsoft Visual Basicを開きます。
3) 開いたMicrosoft Visual Basicの左側、「プロジェクト-VBAProject」に
シート名が何かエクスプローラーのようになっていると思いますが、
その中の目的のシート名が書かれている部分をダブルクリックします。
右側が灰色から白くなり、文字を入力することができるようになります。
4) 目的に応じて、下のA)、B)いずれかをコピーして貼り付けてください。
A) 特定のシートだけCapsLockをオンしたい場合
'ここから--------------------------------------------------------------------------
Private Declare Function GetKeyboardState Lib "User32" (pbKeyState As Byte) As Long
Private Keys(0 To 255) As Byte
Private Sub Worksheet_Activate()
GetKeyboardState Keys(0)
If CBool(Keys(&H14)) = False Then
SendKeys "+{CAPSLOCK}"
Application.SendKeys "+{CAPSLOCK}"
End If
End Sub
Private Sub Worksheet_Deactivate()
GetKeyboardState Keys(0)
If CBool(Keys(&H14)) = True Then
SendKeys "+{CAPSLOCK}"
Application.SendKeys "+{CAPSLOCK}"
End If
End Sub
'ここまで--------------------------------------------------------------------------
B) 特定のセルだけCapsLockをオンしたい場合(下の例ではセルA1になっています)
'ここから--------------------------------------------------------------------------
Private Declare Function GetKeyboardState Lib "User32" (pbKeyState As Byte) As Long
Private Keys(0 To 255) As Byte
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim FCaps As Boolean
FCaps = True
'下の行にCapsLockをしたいセルA1が指定されています。
'変更したい時は、絶対参照($付き)で、かつ列名は大文字で指定します。
If Target.Address = "$A$1" Then FCaps = False
GetKeyboardState Keys(0)
If CBool(Keys(&H14)) = FCaps Then
SendKeys "+{CAPSLOCK}"
Application.SendKeys "+{CAPSLOCK}"
End If
End Sub
'ここまで--------------------------------------------------------------------------
5) Microsoft Visual Basicを終了します。
なおソース中にも書いてありますが、Bの例で別のセルを指定したい場合は、
絶対参照かつ大文字で書いてください。例えばセルB10を指定したい場合は、
If Target.Address = "$B$10"
とします。
複数のセルを指定したい場合は、上の行を必要なだけ追記してください。
If Target.Address = "$A$1" Then FCaps = False
If Target.Address = "$B$10" Then FCaps = False
If Target.Address = "$C$3" Then FCaps = False
と3行続けて書けば、A1とB10とC3にマウスを合わせた時にCapsLockがオンします。
当然A1に合わせてからB10に合わせ直してもCapsLockはオンのままですよ。
No.1
- 回答日時:
マクロでCapsLock、NumLockキーの切り替える方法
http://www.keep-on.com/excelyou/2003lng4/200310/ …
これが参考になりませんか
参考URL:http://www.keep-on.com/excelyou/2003lng4/200310/ …
ありがとうございます。
マクロを使うとセキュリティ警告が出てしまうので、使いたくないのです。。。セキュリティレベルを下げるのも少し不安に感じています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
エクセルで英数大文字のみの入力制限は可能ですか
Excel(エクセル)
-
エクセルVBAでNumLockキーの状態を確認する
Excel(エクセル)
-
テキストボックスに大文字を
Visual Basic(VBA)
-
-
4
エクセル NUMLOCKキーの常時オンについて
その他(Microsoft Office)
-
5
EXCELで大文字入力
Excel(エクセル)
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
CapsLock送信 キーストローク
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
エクセルの数式で教えてください。
-
エクセルで指定した日付、店舗...
-
Excel:一部のフォントでセルの...
-
Excel初心者です。 詳しい方、...
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
スマートな関数を教えて下さい。
-
Excelのグラフ軸について
-
EXACT関数とIF関数の組み合わせ...
-
Excel ウインドウ枠の固定をす...
-
エクセルで日付の入ったセルの...
-
excelの不要な行の削除ができな...
-
INDIRECTを使わず excelで複数...
-
各ページの1番上の表示について
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
関数を教えて下さい。
-
Excelのif関数で文字が見えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報