[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロのInputBoxを使った置換』(初発)
下のような置換をマクロを使って行いたいのですが、「対応するかっこがありません」 というようなメッセージがでてきて途中で止まってしまいます。 マクロ初級者なものでどこが悪いのか、どうか教えて下さい。 よろしくお願い致します。
Sub FOB20()
Dim FOB As Integer Dim X As String
FOB = InputBox("何パーセントにする?", "FOB") X = (FOB * 0.01)
Columns("O:O").Select Selection.Replace What:="0.*", Replacement:=X, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=False End Sub
数式でたとえば以下のようなものがあったとします。 =1*(1+0.05) これを 検索文字列 "0.*" 置換文字列 "0.07" のように置換すると、数式は =1*(1+0.07 となって、括弧が完結しないのでそのようなメッセージが出るのではないでしょうか。 マクロの問題ではなくて、置換しようとしている式をどうにかするべきでしょうね。 定数を直接式に入力して置くのではなくて、定数入力するセルを参照させ、 その定数をマクロで変更するとか。 ですが、不思議なことに、こちらは上記実行するとエラーにならずスルーするだけ? Excel2003 VB6.0 (みやほりん)(-_∂)b
なるほど!できました!!!What:="0.*"を What:="0.*)"にして、 X = (FOB * 0.01)をX = (FOB * 0.01) & ")"に直しましたら 走りました!!! どうもありがとうございました!!! (初発)
度々申し訳ありません。 ImputBoxのキャンセルを選ぶと「型が一致しません」というエラーがでます。 キャンセルの場合は、処理を中止したいのですが、これがまたうまくいきません。 どうかアドバイスを再度よろしくお願い致します。
Sub FOB何パー()
Dim FOB As Integer Dim X As String
FOB = InputBox("何パーセントにする?", "FOB")
If FOB = "Nothing" Then MsgBox "中止" Exit Sub End If
X = (FOB * 0.01) & ")"
Columns("O:O").Select Selection.Replace What:="0.*)", Replacement:=X, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=False End Sub
Dim FOB As Integer → Dim FOB As String または Dim FOB As Variant If FOB = "Nothing" Then → If FOB = "" Then で当面は良いと思いますが、厳密にやりだすと、 「数値化できる文字列かどうか」という条件判断処理も必要になってきます。 (みやほりん)(-_∂)b
みやほりん様、再度、ありがとうございました! 無事に走りました!これで十分です。これ以上 厳密に複雑にすると、理解不能に陥ります、きっと。 どうもありがとうございました! (初発)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.