質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

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

Q&A

解決済

1回答

21152閲覧

オブジェクトが必要です。のコンパイルエラーが出ます。

otftrough

総合スコア476

VBA

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

0グッド

1クリップ

投稿2016/06/24 00:09

編集2016/06/24 00:12

結合したセルの内容を自動で変更させるプログラムですが、エラーメッセージが短すぎて何が言いたいのか伝わりません。
助けてください。

vba

1Private Sub Worksheet_Change(ByVal Target As Range) 2 3 Application.EnableEvents = False 4 If Target.Column = 6 Then 5 6 If Not Target.MergeArea(1, 1).Value = "" Then 7 8 If Not InStr(Target.MergeArea(1, 1).Value, "pb t=") = 0 Then 9 10 'Dim v As String 11 v = Target.MergeArea(1, 1).Value 12 'Dim i As Long 13 i = InStr(v, "pb t=") 14 Target.MergeArea(1, 1).Value = v.Substring(0, i) & "プラスターボード t=" & v.Substring(i + 5) 15 End If 16 End If 17 End If 18 Application.EnableEvents = True 19End Sub

エラー箇所

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

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

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

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

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

guest

回答1

0

ベストアンサー

「オブジェクトが見つかりません」と言われているのはSubstringだと思います。
変数vにTargetのセル内容の文字列を格納し、そこから部分抽出した文字列を取得したいのだと思いますが、VBAでは文字列型.Substringという書き方はしません。(VB.NETの文字列抽出とは異なります。)

VBAでの文字列抽出

'v.Substring(0, i) MID(v, 1, i)

もうひとつアドバイスです。
そもそも変数vを文字列型で宣言していれば、コンパイル時点でエラーとなっていたはずです。

Dim v As String

まずは変数を宣言する癖をつけましょう。

ソースの先頭に

Option Explicit

を記述して、宣言していない変数は使用できないようにすることもお勧めします。

投稿2016/06/24 00:35

jawa

総合スコア3013

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

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

otftrough

2016/06/24 00:44

なんか以前、Substringが使えたような記憶があるのでやってみましたが、MID()でできるならそれでいいか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問