Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


208 / 13645 ツリー ←次へ | 前へ→

【81537】VBAである範囲に入力した文字種の自動変更 やぶ 20/10/25(日) 13:20 質問[未読]
【81538】Re:VBAである範囲に入力した文字種の自動変... hatena 20/10/25(日) 21:12 回答[未読]
【81539】Re:VBAである範囲に入力した文字種の自動変... やぶ 20/10/25(日) 22:10 お礼[未読]

【81537】VBAである範囲に入力した文字種の自動変更
質問  やぶ  - 20/10/25(日) 13:20 -

引用なし
パスワード
   VBAも質問も初心者です。

VBAで例えばA1からA100までのセルに文字が入力されたとき、その入力した文字を自動で大文字で半角に変更されるようにしたいのですが、なかなかうまくつくれません。
Worksheet_ChangeやStrConvを使用することまではわかるのですが、シート全体になったり、色々エラーになったりと原因を特定し修正しようとしても更なるエラーを招いて挫折しました。

説明下手で申し訳ありませんが、どなたかご教授お願いいたします。

【81538】Re:VBAである範囲に入力した文字種の自動...
回答  hatena  - 20/10/25(日) 21:12 -

引用なし
パスワード
   Worksheetのモジュールに下記のように記述してください。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  Set rng = Intersect(Range("A1:A100"), Target)
  If rng Is Nothing Then Exit Sub
  
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  Dim cel As Range, str As String
  For Each cel In Target
    cel.Value = StrConv(cel.Value, vbNarrow + vbUpperCase)
  Next
  Application.ScreenUpdating = True
  Application.EnableEvents = True
End Sub

【81539】Re:VBAである範囲に入力した文字種の自動...
お礼  やぶ  - 20/10/25(日) 22:10 -

引用なし
パスワード
   hatena さん

早い返答、大変助かりました!
おかげでうまく業務のファイルを作成することができました。

教わった内容は自分のものにできるよう、しっかりと勉強していきます。
本当にありがとうございました!

208 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free