アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで「指定した行」に「入力した文字」を『自動的に全角になる』ようにするVBAコードを教えて下さい

入力した文字:全ての文字(漢字、ひらがな、カタカナ、記号、英数字)
指定した行:B列全体

B列のどのセルにおいても、画像1-カ-Aをと入力したら入力したセルに「画像1-カ-A」と全て全角に変換されて入力されるようにしたいです。

行いたいシートの名前を右クリックしてコードの表示
左側の一覧から行いたいシートをダブルクリック
コードをコピペ
でよいのですか?

VBAは覚えて多少なりとも使えるように理解できれば便利でしょうが、
難しくてなかなか理解できません。

A 回答 (3件)

No.1の回答者さんのマクロは、ChatGTPなどのAIが提示した


内容を、検証しないでそのままコピペしたものですね。
一部以外は問題ないのですが、WorksheetFunctionを使った
部分に関しては利用できない関数を提示しています。
UnicodeText関数などないことと、文字列操作の関数もVBAで
利用できないので。(No.2の関数がJIS関数でも使えない)
https://excel-ubara.com/excelvba1/EXCELVBA387.html

せっかく丁寧なChatGTPなどのAIの回答があるのですから、
一部を修正して利用してみてください。
修正箇所
 cell.Value = WorksheetFunction.UnicodeText(cell.Value)
修正したもの
 cell.Value = StrConv(cell.Value, vbWide)
これで利用できるようになります。
http://officetanaka.net/excel/vba/function/strco …

なお、B列は全角入力を指定しているのですから、文字列で
セルの書式設定を指定しておくことをお忘れなく。
    • good
    • 1

JSI関数を使ってください。

    • good
    • 0

指定した行(B列全体)に入力された文字を自動的に全角に変換するVBAコードを提供します。

以下の手順で行ってください。

1. エクセルを開いて、Alt + F11 キーを押してVBAエディタを起動します。
2. エクスプローラーウィンドウで、行いたいシートを見つけて選択します。
3. 右クリックして「コードの表示」を選択します。
4. シートのコードウィンドウに以下のVBAコードをコピーして貼り付けます。

```vba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cell As Range

' 指定した列(B列)を監視対象とします
Set rng = Me.Range("B:B")

' 監視対象のセルが変更された場合
If Not Intersect(Target, rng) Is Nothing Then
Application.EnableEvents = False ' イベント処理を一時的に無効にします

' 全角に変換してセルに値を設定します
For Each cell In Target
cell.Value = WorksheetFunction.UnicodeText(cell.Value)
Next cell

Application.EnableEvents = True ' イベント処理を再度有効にします
End If
End Sub
```

これで指定した行に入力した文字が自動的に全角に変換されます。エクセルでB列に文字を入力すると、それが全角に変換されてセルに表示されるようになります。

VBAに不慣れであれば、コードの貼り付けやエディタの使い方が難しいかもしれませんが、このコードを利用することで全角変換が自動で行われるようになります。
    • good
    • 0

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