

素のエクセルを開いて文字を打つ際、いきなりローマ字で入力することはできるのでしょうか。
エクセルを開いた後に「半角/全角」を押せばいいとか、「入力規則の設定を変更すればいい」とかではなく、素のエクセルを開いた時に最初からローマ字入力する方法を知りたいのです。
入力規則で入力方法を変更したファイルを開くとローマ字から始めることはできるようですが、設定変更したファイル(例えば設定変更したファイルをデスクトップに保存したものを開くといったこと)ではなく素のエクセルを開いて任意のセルにローマ字入力する方法はないのでしょうか。
No.5ベストアンサー
- 回答日時:
こんばんは。
>エクセルを開いた時には「タスクバー」右端のアイコンは「A」になっています。
>これを「あ」の状態で開きたいのです。
最初に、#4についてのフォローアップをさせていただきます。ご質問者さんは、試してみないうちに、自分の推測で判断されたようです。インスタンスという用語はご存知でしょうか。
インスタンスとは、鯛焼きの型(モールド)があれば、同じ形の鯛焼きがいくつもできます。同じ形に出来上がった、食べられる方の鯛焼きのことを、インスタンスといい、鯛焼き型のほうを、クラスと呼びます。#4さんのXlStartに入れたテンプレートはその元の型を意味しています。
XlStart フォルダーに入れたものは、テンプレートとして、新しく生成させるブックのインスタンスを作り、IMEがコントロールされるのであって、その都度、設定されたファイルを開けるのではありません。新規のブックに適用されます。ただし、既存のブックには適用されないのではないかと思います。
それをより具体的にしたものが、VBAで可能です。しかし最近は、こうしたコードをお教えしても、興味を示さない人が多いようです。アドインにしてしまえば、その機能だけに着目しますので、そのコード自体は気にならないはずですが、コードをみると恐れをなしてしまうかもしれません。(アドインにするためには、もう少しコードを加えなくてはなりませんが)
#4さんと同じ発想には基づいていますが、それをVBAでインスタンスを取り付けるわけです。新規ブックでも、既存のブックでも、それ自体には影響はしませんし、一切いじる必要性がありません。
参考:
[XL95]日本語入力システムのオン/オフを制御する方法
https://support.microsoft.com/ja-jp/help/407890
これを、そのまま取り付けても、
>素のエクセルを開いて任意のセルにローマ字入力する方法はないのでしょうか。
ご希望のようにはならないのです。そこで、個人用マクロブックに、クラスのインスタンスを設けるという形になります。別に個々のファイルを書き換える必要はありません。
たかが、このためにこんな長いコードが必要かと思われるでしょうが、プログラムというものはこんなものだということです。たったひとつのボタンを押す行為を、自動で行うようにするためには、こういうことも必要なのです。
'//32bit 用です。
''標準モジュール
Public myClass As New Class1
Public Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) _
As Long
Public Declare Function ImmReleaseContext Lib "imm32.dll" _
(ByVal hWnd As Long, ByVal himc As Long) As Long
Public Declare Function ImmSetOpenStatus Lib "imm32.dll" _
(ByVal himc As Long, ByVal b As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _
lpClassName As String, ByVal lpWindowName As String) As Long
Sub Auto_Open()
Set myClass.App = Excel.Application
End Sub
''Class1
Public WithEvents App As Application
Private Sub App_NewWorkbook(ByVal Wb As Workbook)
ImeActivate
End Sub
Private Sub App_SheetActivate(ByVal Sh As Object)
ImeActivate
End Sub
Private Sub App_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
ImeActivate
End Sub
Private Sub App_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window)
ImeActivate
End Sub
Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
ImeActivate
End Sub
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
With ActiveSheet '入力セルを認識させる
On Error Resume Next
ActiveCell.Activate
ActiveCell.Select
On Error GoTo 0
End With
ImeActivate
End Sub
'必要に応じてイベントマクロを増やします。
Function IMEControl(ByVal nMode As Long)
Dim ClassName As String, WindowName As String
Dim hWnd As Long, IMC As Long, ret As Long
ClassName = "XLMAIN"
'WindowName = Application.Caption '不要
hWnd = FindWindow(ClassName, vbNullChar)
IMC = ImmGetContext(hWnd)
ret = ImmSetOpenStatus(IMC, nMode)
ret = ImmReleaseContext(hWnd, IMC)
End Function
Sub ImeActivate()
If VBA.IMEStatus = vbIMEModeOff Then
Call IMEControl(1)
End If
End Sub
ありがとうございます。
>ご質問者さんは、試してみないうちに、自分の推測で判断されたようです。
XlStartフォルダに入れる件のことでしたら、教えて頂いた時に試しています。
入力規則を変更したものをXlStartフォルダに入れたのですが、なぜか開いた時に変化はありませんでした。
(このファイルを選んで開かなければいけない状態)
その後、以下のことを試して動作するようになりました。
XlStartフォルダに保存したファイルに文字を入れて一旦保存 → 再度開いて文字を消して保存
エクセルを開き直すとローマ字入力できるシートが開くことができました。
ただ、文字を入力して上書き保存すると、次回開いた時に新規のシートではなく、文字が残ったままのものが開かれます。
設定されたファイルを上書き保存して、それを開くのと同じ気がしました。
ボタン一つの裏側には長いコードが必要なんですね。
コードをVBに貼り付けてエクセルを立ち上げました。
やはり、上書き保存されてしまいますが、やりたいことはかなり近いです!
No.7
- 回答日時:
>やはり、上書き保存になってしまうようです。
おっしゃっている質問要項は、完全に可能だということは申しておきます。
ここら辺は、一応、VBAとしての上級レベルに該当しますから、クラス-インスタンスの仕組み自体を理解しないと、よく分からないかもしれません。アドインを提供という手もないのではないのですが、この手のアドインは、今の私の故障しているPCでは、少し荷が重すぎます。いつ、アクセスが不能になるか、あぶない状態です。
個人用マクロブック自体は、お分かりになっているようではあっても、上書き保存が、何を対象にしているかすら、こちらでは正直なところ、不明なのです。
新規ブックに対して、何かの変更を加えれば、「上書き」というよりも、「名前をつけて保存する」ことを求められますし、「個人用マクロブック」自体も、書き加えれば、一度は、保存を求められるのは当然ではありますが、それ一度だけです。一旦、「個人用マクロブック」を保存して、再起動していただくか、もしくは、Auto_Open を一度実行していただくようにするわけです。
PERSONAL.XLSB 等のプロジェクトエクスプローラー(特殊な内容ですので、詳しい説明は省略します)の画像をつけておきます。なお、Book1側は、似たような内容ですが、これは、別のマクロです。PERSONAL.XLSB は、もちろん、XlStart フォルダー(C:\Users\[My ID]\AppData\Roaming\Microsoft\Excel\XLSTART\ の場所にあるファイルのことです。

出来ないモヤモヤ感はありますが、ハードルは高いようです。
今回の質問と同じようなことをしたいと思ってる方がいるかもしれません。
コードが書いてあるところにスタンプを押しておきます。
No.6
- 回答日時:
フィードバックしていただきありがとうございます。
一般的には、私のような書き込みは、無視されるのを承知で書いています。
XlStart のフォルダの中に入れて、Excelを再起動した時に、初めて、機能が働き、インスタンスが生成されるという仕組みです。それは、私が書いたコードでも同じなのですが、「個人用マクロブック」(Personal.xlsb)に組み込むということをして、見えないマクロを、立ち上げるブックに機能を付け足すという役目をさせる、というような機能なのです。
>上書き保存されてしまいますが、
今、お使いになるブックや新規のブックには、機能が働いた(IME ON)だけで、そこには何も残らないはずです。したがって、マクロつきのブックとかは、一切関係がなく、上書きということにはならないはずです。
構造的には以下のようになります。
[ウィンドウの選択]ボタンを押しますと、
---------------------------
新規ブック.XLSX
既存のブック.XLSX
---------------------------
PERSONAL.XLSB(非表示)--ここにマクロが搭載され、上記のブック全体に及ぼす
===============
IMEを起動させる方法には、COMアドインの、xll(拡張子) やExcel-DNAでの便利な方法が隠されているとは思うのですが、今のところ、私の技術は不勉強なもので、コードを提示できる古い手段に頼ってしまいます。
ちなみに、こうした基本機能を改変する技術というのは、ほとんど、どの機能でも、難易度が非常に高いのです。あえて、私の今回のコードをおすすめするつもりはありませんが、もう少し検証してみたらいかがかと思います。言葉の反応から、何か誤解が潜んでいるような気がします。
No.4
- 回答日時:
次の手順をお試しあれ。
1.新規ブックを開く
2.全選択ボタン(列記号Aの左側、かつ、行番号1の上側の四角い部分)をチョーン
3.[データ]→[データツール <データの入力規則>]
4.[日本語入力]タブ画面において、"コントロールなし"→"ひらがな"に変更
5.[OK]をパシーッ
6.上の操作を全シートで実施したブックをテンプレートとして保存
7.Excel 起動時に当該テンプレートを開かせる
Excel 2002 使用して頃は、テンプレートを XLStartフォルダに置いておけば、上記のステップ7が動作したものだが、Excel 2013 では試したことがないし、試すつもりもない。興味ないから。XLStartフォルダの存在可否も知らない。

ありがとうございます。
入力規則を変更したものを保存して開けばできるようですね。
質問の本文にも書いていますが、
”エクセルを開いた後に「半角/全角」を押せばいいとか、「入力規則の設定を変更すればいい」とかではなく、素のエクセルを開いた時に最初からローマ字入力する方法を知りたいのです。”
”入力規則で入力方法を変更したファイルを開くとローマ字から始めることはできるようですが、設定変更したファイル(例えば設定変更したファイルをデスクトップに保存したものを開くといったこと)ではなく素のエクセルを開いて任意のセルにローマ字入力する方法はないのでしょうか。”
No.3
- 回答日時:
貴方の「ローマ字入力」の意味は所謂「直接入力」のことですか?
此処で言う「直接入力」とは、日本語に変換しない半角英数記号を入力することです。
ひょっとして"全角"文字の「ローマ字入力」のことかも知れないので、確認しています。
私も同じ環境だけど、Excel に限らず、メモ帳等も、新規にそれらを開いた時点では"半角"文字の「ローマ字入力」モードになっています。
もしそれで良ければ、
[タスクバー]右端の[あ]([A]かも)アイコン(添付図参照)をマウスで右クリックして、
[プロパティ]→[詳細設定]→[全般]の画面における各設定が何と表示されているかをお知らせください。私のものと比較して、何が異なるかを見ますから。

エクセルを開いた時には「タスクバー」右端のアイコンは「A」になっています。
これを「あ」の状態で開きたいのです。
「タスクバー」右端のアイコン「A」を右クリックすると「半角英数」にチェックが入っていますが、「ひらがな」にチェックが入った状態でエクセルを始めたいということです。
例 キーボードで「o」と打ったときに「お」と表示させる
”[プロパティ]→[詳細設定]→[全般]の画面における各設定が何と表示されているかをお知らせください。” → 入力設定の欄は「ローマ字入力」となっています。

No.2
- 回答日時:
excelのバージョン、windowsのバージョンが不明ですが、
下記のURLは参考になりませんでしょうか。
http://inakamura.main.jp/main/archives/1204#Exce …
https://answers.microsoft.com/ja-jp/windows/foru …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法
- MicrosoftIMEでトラブル、助けてください m(_._)m
- 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変
- エクセルについて教えてください。 一度入力した文字や数字を誤って削除や変更しないために、削除や変更を
- エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります
- Libreoffice Writerを使用していて、前日保存したファイルを開いて文字入力をすると入力
- Excelであいうえおがおえういあになる
- エクセルの数式で教えてください。
- iphoneのキーボード 既存のものを使っています。 名前のローマ字入力等、1文字目だけ大文字にした
- Excel 365 フリーズ 頻発 エクセルのセルの中に日本語の文章を全角半角和文英文数字を混ぜて入
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
最初から入力モードをローマ字(ひらがな)にしたい
Windows 7
-
Windows10 ローマ字入力日本語変換に起動時から設定するにはどうすれば良いでしょうか? 新しい
スピーカー・コンポ・ステレオ
-
常にローマ字日本語入力にする方法を教えてください。 Windows10最新バージョンです。 Goog
マウス・キーボード
-
-
4
エクセルを起動時に自動で日本語入力
Excel(エクセル)
-
5
エクセルの起動時の入力モード
Windows Vista・XP
-
6
最初から日本語入力にする方法
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
マクロの保存先、開いてるすべ...
-
EXcelのマクロで相対パスでファ...
-
エクセルVBAで作成した別ブック...
-
【Excel】マクロの保存先について
-
excelで直前に参照していたブッ...
-
EXCELブックが勝手に開いて困っ...
-
【Excel VBA】マクロでExcel自...
-
エクセル;相対パスを絶対パスへ...
-
エクセルのvbaにて thisworkboo...
-
マクロ 自動でパスワード及び指...
-
ファイル名変更後も、マクロを...
-
【Excel】特定セルの内容をテキ...
-
エクセルで使用期限付きのブッ...
-
エクセルで未保存に対するメッ...
-
EXCELのボタンによるマクロの登...
-
エクセルVBA 個人用マクロブッ...
-
EXCELマクロで、開いてはいるが...
-
複数のExcelファイルの印刷設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセル;相対パスを絶対パスへ...
-
マクロの保存先、開いてるすべ...
-
【Excel】マクロの保存先について
-
EXcelのマクロで相対パスでファ...
-
複数のExcelファイルの印刷設定...
-
excelで直前に参照していたブッ...
-
エクセルVBAで作成した別ブック...
-
【Excel】特定セルの内容をテキ...
-
エクセルのvbaにて thisworkboo...
-
EXCELマクロで、開いてはいるが...
-
エクセルVBA 個人用マクロブッ...
-
EXCELのボタンによるマクロの登...
-
名前の変わるブックをアクティ...
-
EXCELブックが勝手に開いて困っ...
-
ファイル名変更後も、マクロを...
-
エクセルデータを別のエクセル...
-
エクセルを開いて文字を打つ際...
おすすめ情報
Windows 10
Excel 2013 です。