No.6ベストアンサー
- 回答日時:
No.3です。
>”アクティブセルのみ”に作用するよう変更できませんか。
↓に変更してみてください。
Sub Sample2()
Dim c As Range, myRng As Range
Set myRng = Selection
For Each c In Worksheets("Sheet2").Range("A1").CurrentRegion
If c <> "" Then
myRng.Replace what:=c, replacement:="", lookat:=xlPart
End If
Next c
MsgBox "完了"
End Sub
連日お忙しい中ありがとうございます。
おかげさまで何とか次の段階に進むことができそうです。
しかし複雑なVBAコードを書ける方というのは
私のような者からすると天才としか思えないのですが
学校とかに通ってその後何年も勉強してらっしゃるのか、
そもそもオツムの出来具合が違うのか、、、
下らない弱音を書いてお目汚ししてしまいすみません。
ありがとうございました。
No.7
- 回答日時:
こちらの質問には答えていただいていないので、こちらで、想像で作らせていただきました。
私の想像とは違うものなのか、それさえわからないけれども、言葉どおりに(抜けは存在するかもしれませんが)作れば、こうなるという見本のようなものです。これは、アクティブセルのみです。しょせん、納得いかないものを作ったものですから、返事は、つけてもつけなくても、どちらでもよいです。Unicodeに統一したかったのですが、できずじまいでした。数式は、当たり前ですが、「=」 がなくなります。
'//
Sub DeleteOthers()
Dim RegEx As Object
Dim Ms, m
Dim kata_h, kata_z, alpha_z, alpha_h, hira
Dim entTxt As String
Dim buf As String
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
'カタカナ、カタカナ、アルファベット(ABC)、アルファベット(ABC)、
'数字(123)、数字(123)、漢字、ひらがな
kata_h = Chr(&HA6) & "-" & Chr(&HDF) '半角カタカナ
kata_z = ChrW(&H30A1) & "-" & ChrW(&H30F6) '全角カタカナ
alpha_z = Chr(&H8260) & "-" & Chr(&H829A) 'アルファベット全角
alpha_h = "A-Za-z"
hira = ChrW(&H3041) & "-" & ChrW(&H3093) 'ひらがな
.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = "([^一-龠\d\0-9" & kata_h & _
kata_z & alpha_z & alpha_h & hira & "]+)"
End With
If ActiveCell.HasFormula Then
entTxt = ActiveCell.Formula
Else
entTxt = ActiveCell.Value
End If
Set Ms = RegEx.Execute(entTxt)
buf = entTxt
For Each m In Ms
buf = Replace(buf, m.Value, "")
Next
ActiveCell.Value = buf
End Sub
ご回答ありがとうございます。
今朝確認いたしましたもので質問にお答えせず、
大変申し訳ございませんでした。
当方の質問が説明不足でしたが、エラーになる式というのは
別シートにあるデータをINDIRECT関数で引っ張る式です。ただその素データは複数の人間が手打ちで入力する、式ではない固有名詞で、それ自体にカッコやらスラッシュやらハイフンやら様々よけいなモノが混じっております。(最初から入力するなというのは難しい…)
基本的にはちゃんと働く式なのですが、エラーが出る場合があり、その理由を調べたら、元データに&や’が含まれている時にエラーが出ることがわかりました。
そのため、現時点では頻度の高い、検討のつく記号は元データを事前に置換し、それでもエラーの出る場合、目視で探してさらに置換をする、という手順をふんでおりました。(元データの量が多いので、エラーの元となる記号がたとえ2.3個だったとしても探すのがきつい。)
なので、元データ(式ではない)の時点で余計な文字を一括で排除できれば、と思って質問させていただきました。
No.5
- 回答日時:
>エクセルの関数で、
>毎回消したい文字が変わります。
関数として成立していないから、それを置換で直すなんて、ちょっと考えられません。
それが、6万件とか、Excelの表に載せる前の段階で加工するなりすればよいのではなかったのですか?
具体例のパターンを出来る限り上げてほしいです。
自信のある人は、それを見ないで可能なのかもしれませんが、私は、そんなことは言えないですね。
文字でエラーになるのではなく、数式スタイル上でのエラーになっているのではないでしょうか。つまり、その対象は、数式でエラーを出しているという所のはずです。そして、数式を文字列として扱うわけです。
私は、おそらく、VBAマクロとしても特殊なスタイルで、単純な置換ではないと考えました。エラーが出る原因が、そういう文字が入るという単純な理由なのでしょうか。そんなことはあり得ないと思います。なぜ、そんな文字が入ったのでしょうか?
>&、()、’、'、”、←のような文字が含まれている場合エラーになる式
これらの文字が含まれているだけではエラーにはなりません。
「カタカナ、カタカナ、アルファベット(ABC)、アルファベット(ABC)、
数字(123)、数字(123)、漢字、ひらがな」
以下のこれらの文字を省いたら、エラーでない所もエラーになります。
=を始め 、+,-,*,/ ,(,)
数式が数式と成り立つような文字列にし直さなくてはならないはずです。
そんなにかんたんにできるとは思えません。
No.3
- 回答日時:
こんばんは!
手っ取り早くVBAでの一例です。
元データはSheet1にあるとします。
まずSheet2に削除する文字列を羅列しておきます。
(薄い黄色が半角、その他が全角になります。)
※ 注意点 ※
絶対に「?」と「*」は入れないでください。
ワイルドカードになりますので、すべてのセルが空白になります。
標準モジュールです。
Sub Sample1()
Dim c As Range
For Each c In Worksheets("Sheet2").Range("A1").CurrentRegion
If c <> "" Then
Worksheets("Sheet1").Cells.Replace what:=c, replacement:="", lookat:=xlPart
End If
Next c
MsgBox "完了"
End Sub
※ 画像はこちらが勝手に削除する文字を選んだだけです。m(_ _)m
No.2
- 回答日時:
》 カタカナ
》 ひらがな
》 漢字
》 アルファベット
》 数字
》 上記以外を抽出または削除する
ひらがな、漢字以外は半角と全角があるけど「上記」の意味は両方ともですか?
》 &、()、’、'、”、←のような文字…削除したい
その中の「’」は半角文字「'」の全角文字なんだけど、分かってます?
他の3つは全角文字ということも?
No.1
- 回答日時:
>その都度SUBSTITUTEで指定するのが大変なのですが(置換機能も含む)
いやいや、面倒なら「置換」しましょう。
たかだか十数文字でしょ。
十数回「置換」するだけで6万件分すべてを対象とした「置換」が終わるのです。
これって凄いことですよね。
…まさかエラーになるセルをエラーの都度一つずつ置換などで修正しているなんて落ちはありませんよね?
・・・余談・・・
個人的には半角カナは全角カナに直すべきと思うんだ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
EXCELで、漢字のみ抽出する式を教えてください。
Excel(エクセル)
-
EXCELで、セル内の半角カナのみを削除する関数
Excel(エクセル)
-
-
4
セル内文章から、英数字のみ取り出す関数を教えてください
Excel(エクセル)
-
5
エクセル関数またはVBAについて
Excel(エクセル)
-
6
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
7
EXCELで=より左の文字を一括で削除したい
Excel(エクセル)
-
8
エクセルの削除
Excel(エクセル)
-
9
Excel2003のセルから漢字のセルだけ取り出す方法
その他(Microsoft Office)
-
10
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
11
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
12
参照先セルに値が入っていない時に、「0」や「1900/01/00」などが入らないようにしたいのですが
Excel(エクセル)
-
13
エクセル(2003) 「1900/1/0」を消したい
Excel(エクセル)
-
14
全角・半角混在の文字列から半角文字のみ取り出す
Excel(エクセル)
-
15
エクセルでCSVを編集するとき、空白(NULL?)はどう入れますか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
Excelのシートにある1行...
-
VBAでの日付の置換方法を教えて...
-
Excel "~区"のみを削除したい
-
エクセルの表ををメモ帳などに...
-
エクセルのセルの中の,よりも前...
-
Excelのmatch関数エラー原因が...
-
Excelからテキストへのコ...
-
【エクセル】ピボットテーブル...
-
エクセルでセル内の一部分だけ...
-
Excelで、半角スペースをTABに...
-
エクセル マクロで転記したら...
-
Excelのアポストロフィーの削除
-
Excelで特定の文字の前だけに空...
-
Excelの入力済みセルに一括で、...
-
エクセルでセルを文字列設定し...
-
置換機能を使わずに先頭に「'」...
-
小数点を消す方法
-
エクセルで「4」「9」抜けの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
エクセルのセルの中の,よりも前...
-
Excelからテキストへのコ...
-
Excelの空文字セルの削除方法を...
-
Excelで、半角スペースをTABに...
-
置換機能を使わずに先頭に「'」...
-
excelで可視セルのみ置換
-
エクセルでセル内の一部分だけ...
-
Excelのmatch関数エラー原因が...
-
Excelのシートにある1行...
-
小数点を消す方法
-
Excelの入力済みセルに一括で、...
-
【エクセル】ピボットテーブル...
-
エクセルの表ををメモ帳などに...
-
エクセルの関数で、記号などを...
-
Excelで特定の文字の前だけに空...
-
エクセルでスペースの記号を表...
-
企業名簿で(株)や(有)を無視し...
-
Excelのアポストロフィーの削除
おすすめ情報
毎回消したい文字が変わります。
特定の文字ではないので、現時点では↓以外の文字を探して置換しています。
カタカナ、カタカナ、アルファベット(ABC)、アルファベット(ABC)、
数字(123)、数字(123)、漢字、ひらがな
以外の文字を抽出(抽出できれば削除も可能なので)、削除したいのですが
何か良い方法がわかる方がいらっしゃいましたら、教えていただけないでしょうか。
よろしくお願いいたします。
後から追加で大変申し訳ないのですが
”アクティブセルのみ”に作用するよう変更できませんか。
こちらの都合で本当にすみません!!