[[20210708124256]] 『variant型の宣言で実行時エラー13が出る場合の問早x(ツバキ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『variant型の宣言で実行時エラー13が出る場合の問題』(ツバキ)

検索すべき事例数をnとしてvariant型で宣言しています。
しかし、inputoboxメソッドに数値を打ち込んでも実行時エラー13、型が一致しないとエラーが出ます。
typeは1,2両方とも試してみましたがうまくいきませんでした。

以下、コードの一部です。


Sub お互いに似ているものを判別()

Dim sc As Range '開始セル
Dim scr As Long, scc As Long '開始セルのアドレス用数値
Dim arr1 As Variant '配列1
Dim arr2 As Variant '配列2
Dim i As Integer 'カウンタ用変数
Dim n As Variant '検索すべき事例数
Dim a1s As Range, a1f As Range 'arr1の始点セルと終点セル
Dim a2s As Range, a2f As Range 'arr2の始点セルと終点セル

'判別を開始するセルを選択させる

    Set sc = Application.InputBox(prompt:="判定を開始するセルを選択してください", Type:=8)
'検索すべき事例数を入力させる
    Set n = Application.InputBox(prompt:="事例数を入力してください", Type:=1)

< 使用 Excel:Excel2019、使用 OS:unknown >


Setはオブジェクト変数に使うものです
(参考) 2021/07/08(木) 13:06

内容やコードをよく読んでいませんが(失礼)
Type:=1の時は、数値を返すので、
Setをつけてはマズイですよ。
# 衝突しましたが、せっかくなので。

(γ) 2021/07/08(木) 13:09


お二人ともご指摘ありがとうございます。
setを消すと実行時エラーが解消されました。
メソッドとsetを一つのものだと勘違いしておりました。
<(_ _)>
(ツバキ) 2021/07/08(木) 13:14

 >Set n = Application.InputBox(prompt:="事例数を入力してください", Type:=1)
Let n = Application.InputBox(prompt:="事例数を入力してください", Type:=1)

https://excel-ubara.com/excelvba1/EXCELVBA352.html
http://excelneta.starfree.jp/2020/01/01/let%E3%81%A8set%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88/
https://thom.hateblo.jp/entry/2015/09/17/123831

 >Set sc = Application.InputBox(prompt:="判定を開始するセルを選択してください", Type:=8)

こちらはキャンセルしたときにオブジェクトが返ってこないので、Valiant型の変数に受けた方が、
良いかもしれないです。

http://officetanaka.net/excel/vba/tips/tips37.htm

キャンセルをされたときのことを考えると意外と難しい。。。

(まっつわん) 2021/07/08(木) 13:23


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.