No.3ベストアンサー
- 回答日時:
続けてお邪魔します。
>もう少し簡単なプログラムがあれば・・・
というコトですが、この程度しか思いつきませんので、
前回のコードとその説明を加えたものをもう一度載せてみます。
Sub Sample1()
'変数の宣言
Dim k As Long, cnt As Long, str As String, c As Range
'C・D列の消去
Range("C:D").ClearContents
'A1セルの1文字目~最終文字まで
For k = 1 To Len(Range("A1"))
'一文字ずつを変数(str)に格納
str = Mid(Range("A1"), k, 1)
'もしstrが「漢字」であれば・・・(おそらくすべての漢字が網羅されていると思います)
If str Like "[一-黑]" Then
'C列に「str」が存在するかどうか確認
Set c = Range("C:C").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole)
'もしC列に「str」がなければ
If c Is Nothing Then
'cnt(表示用の行番号として使用)を1つずつ増やす
cnt = cnt + 1 '←最初は「1」となる
'C列の「cnt」行の
With Cells(cnt, "C")
'値はstrを代入
.Value = str
'その右隣りのセルに「1」を代入
.Offset(, 1) = 1
End With
'そうでない場合は
Else
'C列にstrがある行の右隣りの値は、入力済みの数値に1をプラス
c.Offset(, 1) = c.Offset(, 1) + 1
End If
End If
'次のk(文字)へ!←(A1セルの最後の文字まで一文字ずつ順にループ)
Next k
'C列最終行の2行下のセルの
With Cells(Rows.Count, "C").End(xlUp).Offset(2)
'値は「総数」に
.Value = "総数"
'その右隣りのセルはD列数値の合計を!
.Offset(, 1) = WorksheetFunction.Sum(Range("D:D"))
End With
End Sub
※ 一応上記のような考え方でのコードです。
この程度でよろしいでしょうかね?m(_ _)m
No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
前回のコードの
>If str Like "[亜-黑]" Then
の行を
>If str Like "[一-黑]" Then
に変更してください。
前回のコードでは漏れがあるみたいです。
※ 今回も詳しく検証していませんので漏れがあったらごめんなさいね。m(_ _)m
この回答へのお礼
お礼日時:2013/12/02 20:14
ありがとうございます!!
実行してみたらちゃんとできました。
ただVBA超初心者なんで何が何を意味してるかが分からないのでもう少し簡単なプログラムがあれば、もしくは簡単で構わないので説明していただけるとありがたいです汗。
No.1
- 回答日時:
こんばんは!
色々やり方はあると思いますが、一例です。
「ある文字列」はA1セルにあるとし、C列に漢字を、D列に個数を表示するとします。
Sheetモジュールです。
Sub Sample1()
Dim k As Long, cnt As Long, str As String, c As Range
Range("C:D").ClearContents
For k = 1 To Len(Range("A1"))
str = Mid(Range("A1"), k, 1)
If str Like "[亜-黑]" Then
Set c = Range("C:C").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
cnt = cnt + 1
With Cells(cnt, "C")
.Value = str
.Offset(, 1) = 1
End With
Else
c.Offset(, 1) = c.Offset(, 1) + 1
End If
End If
Next k
With Cells(Rows.Count, "C").End(xlUp).Offset(2)
.Value = "総数"
.Offset(, 1) = WorksheetFunction.Sum(Range("D:D"))
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) ある範囲のセルに何を入力すると、別のセルに○を表示させる 3 2022/04/05 15:51
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- 数学 数独の解法についてお聞きします 4 2023/05/25 17:15
- 文学・小説 横書き小説の数字の表記について 1 2023/01/15 22:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Sub 要具ライフ() ActiveSheet....
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
【Excel VBA】指定行以降をクリ...
-
Excelのプルダウンで2列分の情...
-
VBAを使用した時間管理
-
エクセル マクロで セルの範...
-
EXCELのVBA-フィルタ抽出後の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
DataGridViewの各セル幅を自由...
-
screenupdatingが機能しなくて...
-
【Excel】指定したセルの名前で...
-
VBAでセルに値が入ったときにイ...
-
TODAY()で設定したセルの日付...
-
VBからEXCELのセルの値を取得す...
-
DataGridViewのセル編集完了後...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
【マクロ】プルダウンが設定し...
-
Excelで指定した日付から過去の...
-
VBA実行後に元のセルに戻りたい
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
EXCELで変数をペーストしたい
-
【EXCEL VBA】Range("A:A").Fi...
-
エクセルVBAでコピーして順...
-
連続する複数のセル値がすべて0...
-
screenupdatingが機能しなくて...
-
Excel VBA、 別ブックの最終行...
-
任意フォルダから画像をすべて...
-
Excelのプルダウンで2列分の情...
-
【VBA】カーソルのある行の1行...
-
VBAコマンドボタンを押すたびに...
おすすめ情報