🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

2501閲覧

VBAで転記したデータの数字を削除したい

yu-taro-

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/03/24 03:21

#####実現したいこと
**シート①のデータをシート②に転記するマクロを書いています。
転記後シート②のN8に入った値の数字を削除したいです。
※値を転記するところまでは出来ました。
**
イメージ説明

######全体のコード

VBA

1Dim Bsh As Worksheet 2 3Set Bsh = Sheets(2) 4 5'シート2のN3の数字削除 6Dim Rng As Range 7 8 For Each Rng In Selection 9 If IsNumeric(Bsh.Range("N3")) And Rng.HasFormula = False Then 10 Rng.ClearContents 11 End If 12 Next 13 14End Sub 15 16

######ここの書き方で詰まっています

VBA

1 If IsNumeric(Bsh.Range("N3")) And Rng.HasFormula = False Then 2 Rng.ClearContents 3 End If

何分不慣れなため、ご教授頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sinya0320

2021/03/24 03:30

数字を削除というのは、「1234_テスト」を「_テスト」にしたいという事でしょうか?
yu-taro-

2021/03/24 03:37

sinya0320さん、早速のお返事ありがとうございます。 そうです。その形にしたいです。
guest

回答2

0

ベストアンサー

先頭からの連続した数字を削除するという前提なら、Val()で数値だけを取り出し、その値をReplace()で空文字に置き換えます。

VBA

1Bsh.Range("N3") = Replace(Bsh.Range("N3"), Val(Bsh.Range("N3")), "")

投稿2021/03/24 04:34

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu-taro-

2021/03/24 05:33

ご丁寧にありがとうございます。 こんな簡単に書けるんですね。助かりました。
guest

0

なんでSelectionを取得しているのか、その辺わからんので
単純にN3の数字を削除するだけで

Dim v As String Dim i As Integer Dim ret As String v = Range("N3").Value ret = "" For i = 1 To Len(v) If Not IsNumeric(Mid(v, i, 1)) Then ret = ret & Mid(v, i, 1) End If Next

N3の値を取得してvに入れて
vの長さ分ループして
1文字ずつ数値チェックして、数値でない場合にretに入れています。
最終的に、retに「_テスト」と格納されます。

削除。というか、数値以外を取得しているだけなので
例えば、「テスト1_結果」とか、途中の数値も「テスト_結果」と削除されます。

投稿2021/03/24 04:16

sinya0320

総合スコア211

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu-taro-

2021/03/24 05:32

助かりました。ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問