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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
エクセルで英数大文字のみの入力制限は可能ですか
Excel(エクセル)
-
エクセルVBAでNumLockキーの状態を確認する
Excel(エクセル)
-
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
-
4
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
VBAでInputBoxの再入力をさせるには?
Visual Basic(VBA)
-
7
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのデータについて
-
Excelの警告について
-
Excelのブック内のシートの色を...
-
セル内が空白設定なのに#N/Aと...
-
excelVBAについて。
-
UNIQUE関数、配列数式を使わず...
-
IEを使わずHTMLを取得する
-
エクセルの不調について
-
エクセルで、数字の下4桁の0を...
-
アクセス2016 エクセル2016 重...
-
1.5ヶ月分の費用按分 エクセル関数
-
11ケタの数字を打つと、エク...
-
エクセルの数式が分かりません
-
Excelで、毎月の月曜と金曜の合...
-
excelVBAについて。
-
【マクロ】複数の日付データをY...
-
エクセル数式に問題があります
-
Excelで合計を求めたいです
-
最新I/e?のキャッシュクリア
-
【マクロ】メッセージボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルの数式バーのフォント...
-
【Excel】日付に連動してプルダ...
-
【再投稿】レイアウトが異なる...
-
Excelについて教えてください ...
-
同率順位の発生しないランキン...
-
エクセルマクロについて教えて...
-
【Excel VBA】 テキストファイ...
-
Excel 標準フォントについて教...
-
Excelの計算で差分を求める場合...
-
Excelの区切り文字について質問...
-
大容量があつかえるソフトを探...
-
エクセルの計算式について(COU...
-
エクセルについて
-
今までは、 「CSVの出力先を選...
-
Excel ショートカットで列、行...
-
8:40までの出勤は全て8:30に...
-
if関数。半角文字や全角文字で...
-
エクセルの関数
-
毎週追加して行くセルの数値を...
おすすめ情報