- 締切済み
Excel:全角カタカナを入力時に自動的に半角カタカナにしたい
恐れ入ります。 Excel2007にて全角カタカナをASC関数などで半角カタカナに修正をしているのですが、列がふたつできてしまうため少し面倒です。 (元の全角の列、半角になおした列) 入力時に設定をしてしまうことは可能でしょうか。 入力の際に、カタカナが自動的に半角になるようにできれば とてもたすかります。 ご存じの方、どうぞよろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
NO4です。 >上記の内容をペースト、その後は「実行」でよいのでしょうか。 ⇒ペースト→対象列又はセル範囲を変更→VBE画面を終了→対象セルに入力。 因みにworksheet、change選択を意識する必要ありません。
- mu2011
- ベストアンサー率38% (1910/4994)
NO2です。 VBAしかできないと思いますので、以下の参考コードでお試し下さい。尚、対象をA列のみとしていますのでコード中の「Range("A:A")」 を調整して下さい。 (1)対象シートのシートタブ上で右クリック (2)以下のコードを貼り付け Private Sub Worksheet_Change(ByVal Target As Range) Dim myWK As String On Error GoTo error If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub myWK = Target.Value Application.EnableEvents = False Target.Value = StrConv(myWK, 8) Application.EnableEvents = True error: End Sub
補足
何度も申し訳ございません。 対象シートを右クリック、worksheet changeの下の欄に 上記の内容をペースト、その後は「実行」でよいのでしょうか。 時間がないため、ゆっくり調べることができず 伺ってばかりで申し訳ございません・・
- imogasi
- ベストアンサー率27% (4737/17069)
これはVBAそれもイベントという概念をVBAで理解せねばならず 初心者向けの課題ではないでしょう。 教えてもらったとおりやってよしとするなら Sheet1などの Change イベントに下記を作れば出来ると思う。少数のテスト済み。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then 'A列限りで Target = StrConv(Target, vbNarrow) End If End Sub ーー ただし全角数字も半角化してしまう 1文字ずつ全角カタカナかを聞いて、半角化するのは文字コードの知識が要り、複雑化すると思うので略。 例 東京オーケストラ チャイナタウン横浜 オーボエ奏者と第一バイオリンが 第2バイオリン (注 OKWAVEでは全角かされるかもしれないが、上記実行結果は、カタカナは半角)
- mu2011
- ベストアンサー率38% (1910/4994)
対象範囲を選択→データタブのデータツールグループにある「データの入力規則」→日本語入力タブの日本語入力欄で半角カタカナを選択で 如何でしょうか。
補足
ありがとうございます。 説明が不十分で申し訳ございませんでした。 漢字やひらがなはそのままにしてカタカナのみを 半角にしたいのですが・・。 よろしくお願い致します。
- hana-hana3
- ベストアンサー率31% (4940/15541)
入力規則で設定出来ます。 http://kokoro.kir.jp/excel/nkisoku_ime.html
補足
ありがとうございます。 説明が不十分で申し訳ございませんでした。 漢字やひらがなはそのままにしてカタカナのみを 半角にしたいのですが・・。 よろしくお願い致します。
補足
たびたび申し訳ございません。 実行ボタンをクリックすると小さめのウィンドウがでまして 「マクロ名」の欄が空欄になっております。 マクロ名を入れないと実行できないようなのです・・。