
①VBAで、H列の値のうち特定の文字「:」も含め、その文字より右側を削除して、残った数値を文字列に変換したいです。
・特定の文字以降の文字数は、一定ではありません
・文字列に変換したい残った数値の桁数は一定ではありません
・H列の値の最下行が常に一定ではないため、列ごとしたいです
②VBAで、I列の値のうち特定の文字「:」も含め、その文字より左側を削除したいです。
・特定の文字以降の文字数は、一定ではありません
・I列も値の最下行が常に一定ではないため、列ごとしたいです
関数ではなくVBAで実行したく、初心者が無理をして恐縮ですが、勉強のためどなたかご教示いただけましたら幸いです。
説明が拙く画像も添付させていただきます。
お手数お掛けいたしますが、よろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
こんばんは
元の値に ":" が無い場合や空白セルの場合、あるいは、":" が複数含まれる場合などにどのような結果をお求めなのかわかりませんけれど、勝手に解釈しました。
以下ではいかがでしょうか?
Sub Q12901413()
Dim rw As Long, col As Long
Dim rng As Range
Dim v, i As Long, n As Long
Const del = ":" ’←区切り文字
For col = 8 To 9
rw = Cells(Rows.Count, col).End(xlUp).Row
rw = Application.Max(rw, 2)
Set rng = Cells(2, col).Resize(rw - 1)
v = rng.Value
For i = 1 To UBound(v)
If col = 8 Then
n = InStr(v(i, 1), del)
v(i, 1) = Left(v(i, 1), IIf(n, n - 1, 99))
Else
n = InStrRev(v(i, 1), del)
v(i, 1) = Mid(v(i, 1), IIf(n, n + 1, 1), 99)
End If
Next i
rng.NumberFormat = "@"
rng.Value = v
Next col
End Sub
お世話になります。ご返信遅くなり申し訳ございません。
早々にご回答いただきありがとうございました!
元の値に 「:」 が無い場合や空白セルの場合などを想定していなかったので、そちらも加味した記述を教えていただきありがとうございます。
こちらのご説明不足にもかかわらず、確かにそういったこともありますので、大変勉強になりました。
お気遣い感謝いたします。
またご相談するかと思いますが、ご教示いただけましたら幸いです。
No.3
- 回答日時:
こんなのでも、行けそうです。
Sub Macro1()
Dim r As Range
For Each r In Columns("H:I").SpecialCells(xlCellTypeConstants, 23)
r.Value = "'" & Split(r.Value, ":")(0)
Next r
End Sub
お世話になります。ご返信遅くなり申し訳ございません。
早々にご回答いただきありがとうございました!
こちらの記述でも希望通りの実行ができました!
色々な記述があり大変勉強になりました。
またご相談するかと思いますが、ご教示いただけましたら幸いです。
No.1
- 回答日時:
何の工夫もしてないけど。
2行目から最終行まで処理してます。
Option Explicit
Sub sample()
Dim i As Long
Dim j As Long
'①の処理
j = Cells(Rows.Count, "H").End(xlUp).Row 'H列の最終行取得
For i = 2 To j
Cells(i, "H") = "'" & Left(Cells(i, "H"), InStr(Cells(i, "H"), ":") - 1)
Next
'②の処理
j = Cells(Rows.Count, "I").End(xlUp).Row 'I列の最終行取得
For i = 2 To j
Cells(i, "I") = Right(Cells(i, "I"), Len(Cells(i, "I")) - InStr(Cells(i, "I"), ":"))
Next
End Sub
お世話になります。ご返信遅くなり申し訳ございません。
早々にご回答いただきありがとうございました!
こちらの記述で希望の実行ができました。
大変勉強になりました。
またご相談するかと思いますが、ご教示いただけましたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列を指定して値を左から5文字にそろえる 1 2022/06/10 20:28
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBA:特定の文字列以降(あるいは以前)のテキストをすべて取得する方法
Visual Basic(VBA)
-
ある特定の文字以降全て削除したいです。
Excel(エクセル)
-
VBAで特定の文字以降の文字列の色の変更をしたい
Excel(エクセル)
-
-
4
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
5
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
6
エクセルでセル内の文字列の最後のスペース以下を削除するには?
Excel(エクセル)
-
7
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
8
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
9
EXCEL VBA Dictionaryで複数の値を格納→離れた位置に出力する方法
Excel(エクセル)
-
10
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
11
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
12
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
13
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
14
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
15
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
16
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
17
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
18
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
19
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
20
複数の列の値を結合して別の列へ返す
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
VBAでのリスト不一致抽出について
-
VBAのFind関数で結合セルを検索...
-
vba 2つの条件が一致したら...
-
Worksheets メソッドは失敗しま...
-
【VBA】2つのシートの値を比較...
-
VBAを使って検索したセルをコピ...
-
IIF関数の使い方
-
VBAで、特定の文字より後を削除...
-
VBAで、離れた複数の列に対して...
-
総計をエクセルVBAで出すには。。
-
VBA 何かしら文字が入っていたら
-
rowsとcolsの意味
-
URLのリンク切れをマクロを使っ...
-
マクロ 最終列をコピーして最終...
-
targetをA列のセルに限定するに...
-
Changeイベントでの複数セルの...
-
エクセル 2つの表の並べ替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
【VBA】2つのシートの値を比較...
-
Changeイベントでの複数セルの...
-
VBAで指定範囲内の空白セルを左...
-
【Excel VBA】 B列に特定の文字...
-
データグリッドビューの一番最...
-
VBAで、特定の文字より後を削除...
-
文字列の結合を空白行まで実行
-
VBAを使って検索したセルをコピ...
-
二つのリストを比べて部分一致...
-
マクロについて。S列の途中から...
-
マクロ 最終列をコピーして最終...
おすすめ情報