
お世話になります。
仕事で英文小文字を大文字に変換する必要があり、
普段は関数「=UPPER(セルの番号)」を使っております。
今、マクロの勉強をしているため、ネットで少し調べてみたら
http://oshiete.goo.ne.jp/qa/502583.html
が見つかりました。
早速、ページの内容を確認して、
関係ない部分を削除したところ、
以下のようになりました。
-----------
Sub Macro1()
Dim i, j As String
i = 1 '行番号
j = 1 '列番号
myString = Cells(i, j)
myString = UCase(myString) '大文字
Cells(i, j) = myString
End Sub
-----------
試してみたところ、
A1セルに入力した小文字から大文字に変わります。
なのでこのマクロは機能しており問題ありません。
問題はここからで、セルの番地がA5からA10に入った小文字を
大文字にするために、変数の定義を付け加え
以下のように更新しました。
ところがいざ「実行」させてみると
「中断モードでコードを実行することはできません。」
というエラーメッセージでマクロが機能しません。
こういった状況です。お手数ですがエクセルのマクロに詳しい方、説明の上手な方、
よろしくお願いします。
-----------
Sub Macro1()
Dim i, As long
Range ("A5")
For i = 5 To 14
myString = Cells(i, j)
myString = UCase(myString) '大文字
Cells(i, j) = myString
Next i
End Sub
-----------
No.2ベストアンサー
- 回答日時:
こんにちは!
>A5からA10に入った小文字(半角英数)を・・・
範囲がA5~A10と決まっているのであれば
Sub Sample1()
Dim i As Long
For i = 5 To 10
Cells(i, "A") = UCase(Cells(i, "A"))
Next i
End Sub
とか
Sub Sample2()
Dim c As Range
For Each c In Range("A5:A10")
c = UCase(c)
Next c
End Sub
くらいで大丈夫だと思います。m(_ _)m
No.3
- 回答日時:
こんにちは。
>「中断モードでコードを実行することはできません。」
久々、勉強させていただきました。
片方のマクロが何らかの原因で、マクロが止まった状態で、別のマクロを動かそうとした時に出るエラーです。止まっている状態のマクロを終わらせてあげれば動きます。
ご質問の答えとしては、
「中断モードでコードを実行することはできません。」
の対処法は
VBEditor 画面で
--------------
▶ || □
-----------
を見ていただくと、▶のところが明るくになっていて、|| が押せないようになっていますから、■ を押していただければ、マクロは止まります。
内容を修正します。
Sub Macro1()
'修正部分
Dim i, As long 'Dim i As long, j as Long
'Dim myString As String
j =1
Range ("A5") 'Range("A5").Select
For i = 5 To 14
myString = Cells(i, j)
myString = UCase(myString) '大文字 本来は以下の1行で足りる
Cells(i, j) = myString 'Cells(i,j) = UCase(Cells(i, j))
Next i
End Sub
------------------
というような感じにはなりますが、入門レベルでは、変数の宣言はあまり厳密にしなくてもよいと思います。最初は、Dim i, j, myString と型を入れません。
もし型を入れる場合は、整数型なら、Long, 文字型なら、String, オブジェクト型は、Object, ワークシートの数字の場合は、Double と決めてしまってもよいです。Sheet, Workbook という型も使うことも増えてくるかもしれません。
Excelは、64bit 時代に入っても、未だ32bit が主流ですが、変数の型は、それだけに、ややこしいかもしれません。
また、VBA関数は、VBAの入門編としては、3部のある内の2部に入るはずです。VBAには、文字列関数が多いようです。なかなか覚えきれないというのが正直なところです。だから、後回しになることも多いものです。なれない内は、一覧表で確認したほうがよいかもしれません。
リンク先の質問は、ちょっと趣旨が違うかもしれません。そちらの質問者さんの求めている答えには正解は出ていないようです。ベストアンサーではあっても、答えのコードではないと思います。
いろいろアドバイス頂きありがとうございます。
中断モードの件、参考になりました。
内容の修正の件もわかりやすい書き方で、不足しているところが見やすく、助かりました。
変数の件ですが、今の私のレベルは「整数型なら、Long, 文字型なら、String, 」だけなんとなくわかるくらいです。
こちらに質問しながらマクロの勉強をするつもりなので、
機会がありましたらまたお願いします。
今回はいろいろ説明して頂きありがとうございました。
No.1
- 回答日時:
2ヶ所ある「(i, j)」を「(1,i)」に直せば良いと思います。
定義していない変数「j」が使われていたのでエラーになっているだけです。
判っていると思いますが、For ~ Next の間は次の1行でもOKです。
「Cells(1,i).Value=UCase(Cells(1,i).Value)」
また「.Value」を付ける癖をつけた方が良いと思います。
教えて頂きありがとうございます。
「2ヶ所ある「(i, j)」を「(1,i)」に直せば良いと思います。」とのことなので、入力してみたところ以下のようになると思います。
「実行」してみたところ「構文エラー」というメッセージで「 Dim i, As long」というところが赤い文字になり、途中で止まってしまいました。
止まった理由が今の私ではわかりませんが、No.3のWindFallerさんの構文と少し違うので、これから勉強する時のヒントになると思います。
機会がありましたら、またお願いします。回答して頂き、ありがとうございました。
-----------
Sub Macro1()
Dim i, As long
Range ("A5")
For i = 5 To 14
myString = Cells(1, i)
myString = UCase(myString) '大文字
Cells(1, i) = myString
Next i
End Sub
-----------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/01/06 08:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Visual Basic(VBA) 乱数の表示 4 2022/10/12 10:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
エクセルで特定の列が0表示の場...
-
エクセルに張り付けた写真のフ...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロ VBA プロシー...
-
オートフィルターとExcelマクロ...
-
IF関数を使ってマクロを実行さ...
-
エクセルのマクロでワードの任...
-
ExcelVBAの繰り返し処理でwebク...
-
Excelのセル値に基づいて図形の...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
ExcelVBA 図形をクリックした...
-
ピボットテーブルでの毎回可変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報
A5からA10に入った小文字(半角英数)をマクロで大文字(半角英数)にするための、プログラム、変数の使い方について教えて下さい。
GooUserラックさん、tom04さん、WindFallerさん、
ご回答ありがとうございます。みなさんのご回答のとおり全部試してみました。
どの回答もためになるアドバイスで助かりました。
試してみた詳細はお礼のところに記載しました。
機会がありましたら、またお願いします。