
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Vlookup から、Findメソッドという振り出しをさせると、私には良く分からなくなります。
両者の類似点というものが、私にはあまりないと思うからです。>vbaのfindメソッドで書式ごとコピーをすればいいというのはわかったのですが
理屈としては、まさにそのとおりには違いないのですが、Excelのメソッドにあるようでいて、ないのです。Pastespecial でいくつか試しにやってみるとうまく行きません。
(1)
そこで、やはり丸ごとコピーということになります。
(途中から下線というようなスタイルの場合にはできないということです)
検索語に、マウスカーソルを置いて実行します。
(2)の方は、
最初に検索するセルにマウスカーソルを置いて、右隣に()で置き換わる文字を書いておきます。A1 が検索語なら、B1 が置換文字です。
y(o) u または、y* // _
マクロを実行します。
現在のマクロはただの一回きりです。連続置換の場合は、コードを書き換えなくてはなりません。
'//
''(1)
Sub SerchReplacement()
Dim c As Range
Dim FirstAddress As String
Dim r As Range
Set r = ActiveCell
If r.Value = "" Then Exit Sub
With Cells
Set c = .Find(What:=r.Value, After:=r, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If Not c Is Nothing Then
r.Copy
c.PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
End If
End With
End Sub
'//
''(2)
Sub SerchReplacement2()
Dim c As Range
Dim Re As Object
Dim FirstAddress As String
Dim r As Range
Dim replTxt As String
Dim Matches
Dim a As Variant
Set Re = CreateObject("VBScript.RegExp")
Re.Pattern = "(\(.*\))"
Re.Global = False
Set r = ActiveCell
replTxt = ActiveCell.Offset(, 1).Value '括弧の中だけ
If r.Value = "" Then Exit Sub
With Worksheets("Sheet2").Cells
Set c = .Find(What:=r.Value, After:=r, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If Not c Is Nothing Then
Set Matches = Re.Execute(c.Value)
If Matches Is Nothing Then
MsgBox "括弧が見つかりません。"
Else
a = c.Value
c.Value = Replace(c.Value, Matches(0).subMatches(0), replTxt, , 1, vbTextCompare)
If a <> c.Value Then Beep
End If
End If
End With
Set Re = Nothing
End Sub
なお、Basp21というオブジェクトライブラリが入れてあれば、もっと簡単に置換が出来ます。
No.1
- 回答日時:
こんにちは!
前半部分の質問がイマイチ判らないので、後半部分だけです。
↓のコードをコピー&ペーストしマクロを実行してみてください。
Sub Sample1() 'この行から//
ActiveSheet.Cells.Replace what:="(?)", replacement:="_", lookat:=xlPart
End Sub 'この行まで//
※ とりあえず()の中は一文字限定としています。
複数文字も対応したい場合は
>what:="(?)"
を
>what:="(*)"
としてみてください。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
処理内容がほぼ同じメソッドの...
-
VBPをダブルクリックするとたま...
-
【sendkeysメソッドが動かずに...
-
Labelコントロールに数字を代入...
-
CALLされていないメソッドを見...
-
javascriptからjavaを呼び出したい
-
final修飾子を使っているのに、...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
VB.netで、シリアル通信のタイ...
-
エクセルVBAにおけるON TIMEメ...
-
0歳児の指しゃぶりに関して
-
VBAでSaveAs使用し、指定してい...
-
JAVA言語,JSPによるクイズシス...
-
DataGridViewでセルクリックイ...
-
Excel VBA でExcelを終了したい...
-
C#.net Define文
-
コマンドプロンプト実行後に画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
ウィンドウを最前面にできません
-
JSPで<SELECT>の中にDBから持っ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
eclipse-Tomcatでのデバッグに...
-
Application.Wait の参照設定
-
エクセルVBAにおけるON TIMEメ...
-
配列のメソッド
-
エクセルのマクロでプリンタを...
-
final修飾子を使っているのに、...
-
drawStringで文字間隔の調整
-
Excel VBA でExcelを終了したい...
-
worksheets & rows メソッドは...
-
CALLされていないメソッドを見...
-
vbaエクセルマクロ RemoveDupli...
おすすめ情報