①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(エクセル)
-
Excel VBA:特定の文字列以降(あるいは以前)のテキストをすべて取得する方法
Visual Basic(VBA)
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
-
4
EXCELで=より左の文字を一括で削除したい
Excel(エクセル)
-
5
エクセルVBA 作業後に選択範囲を解除する方法
Excel(エクセル)
-
6
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
VBAで文字列を数値に変換したい
Excel(エクセル)
-
9
エクセルでセル内の文字列の最後のスペース以下を削除するには?
Excel(エクセル)
-
10
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
13
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
14
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
15
ACCESSの計算式を入れると%表示ができなくなります。
その他(データベース)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
18
多量のファイルをフォルダに自動振り分けするマクロを教えて下さい。
PowerPoint(パワーポイント)
-
19
サブフォルダ内のファイルを全部移動させたい。
Visual Basic(VBA)
-
20
エクセルで横データを縦に並べ変えたいです。
財務・会計・経理
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
IIF関数の使い方
-
文字列の結合を空白行まで実行
-
vba 2つの条件が一致したら...
-
VBAのFind関数で結合セルを検索...
-
データグリッドビューの一番最...
-
最終列の右へSUM関数を作成する...
-
VBAを使って検索したセルをコピ...
-
Changeイベントでの複数セルの...
-
Cellsのかっこの中はどっちが行...
-
複数csvを横に追加していくマク...
-
VBAの構文 3列置きにコピーし...
-
VBA 何かしら文字が入っていたら
-
エクセル 2つの表の並べ替え
-
VBAで10行おきにセルの下に罫線...
-
【VBA】2つのシートの値を比較...
-
VBScriptでfindを使うには??
-
マクロ 最終列をコピーして最終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
データグリッドビューの一番最...
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
【VBA】2つのシートの値を比較...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
Excel(M365) Vlookup/セル反転(...
-
VBA指定行削除
-
VBAでのリスト不一致抽出について
-
C# dataGridViewの値だけクリア
-
Changeイベントでの複数セルの...
-
VBAで、特定の文字より後を削除...
-
rowsとcolsの意味
おすすめ情報