Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1305 / 13645 ツリー ←次へ | 前へ→

【75169】VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/25(水) 15:52 質問[未読]
【75170】Re:VLOOKUPのセルを含むとエラーが出ます。 ウッシ 13/12/25(水) 16:31 回答[未読]
【75174】Re:VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/26(木) 9:46 質問[未読]
【75175】Re:VLOOKUPのセルを含むとエラーが出ます。 ウッシ 13/12/26(木) 10:16 回答[未読]
【75176】Re:VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/26(木) 12:54 質問[未読]
【75177】Re:VLOOKUPのセルを含むとエラーが出ます。 ウッシ 13/12/26(木) 13:35 回答[未読]
【75178】Re:VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/26(木) 19:49 質問[未読]
【75179】Re:VLOOKUPのセルを含むとエラーが出ます。 ウッシ 13/12/27(金) 9:49 回答[未読]
【75180】Re:VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/27(金) 11:03 お礼[未読]
【75181】Re:VLOOKUPのセルを含むとエラーが出ます。 ウッシ 13/12/27(金) 11:41 回答[未読]
【75182】Re:VLOOKUPのセルを含むとエラーが出ます。 しずか 13/12/27(金) 13:02 お礼[未読]
【75183】余談ですが・・・ しずか 13/12/27(金) 13:58 発言[未読]
【75184】Re:余談ですが・・・ ウッシ 13/12/27(金) 14:17 回答[未読]
【75185】Re:余談ですが・・・ しずか 13/12/27(金) 15:11 お礼[未読]

【75169】VLOOKUPのセルを含むとエラーが出ます。
質問  しずか  - 13/12/25(水) 15:52 -

引用なし
パスワード
   お世話になっております。今回もよろしくお願いいたします。

下記のようなマクロを作りました。


Sub てすと()

    Range("A1:I10").Select
    Selection.Find(What:=Application.WorksheetFunction.Max(Selection)).Select
 
  With Selection
   
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
    
  End With

End Sub


最初に選ぶセルが"A1:I10"となっていますが、
同じ作業を別の範囲でもやります。

この、選んだ範囲のセルが、数値の入力された普通のセルですと問題なく動きますが、
そのセルにVLOOKUPの関数が入っているとエラーがおこります。


これを動かす方法はありますでしょうか?

お知恵をお貸しください。
よろしくお願いいたします。

【75170】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/25(水) 16:31 -

引用なし
パスワード
   ▼しずか さん:

こんにちは

値を検索するために、Lookin をセットします。

Sub てすと()
  Dim m As Long
  Dim t As Range
  With Range("A1:I10")
    m = Application.WorksheetFunction.Max(.Cells)
    Set t = .Find(What:=m, LookIn:=xlValues)
  End With
  With t
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
  End With
End Sub


>お世話になっております。今回もよろしくお願いいたします。
>
>下記のようなマクロを作りました。
>
>
>Sub てすと()
>
>    Range("A1:I10").Select
>    Selection.Find(What:=Application.WorksheetFunction.Max(Selection)).Select
> 
>  With Selection
>   
>    .BorderAround Weight:=xlMedium, ColorIndex:=3
>    .Font.Bold = True
>    
>  End With
>
>End Sub
>
>
>最初に選ぶセルが"A1:I10"となっていますが、
>同じ作業を別の範囲でもやります。
>
>この、選んだ範囲のセルが、数値の入力された普通のセルですと問題なく動きますが、
>そのセルにVLOOKUPの関数が入っているとエラーがおこります。
>
>
>これを動かす方法はありますでしょうか?
>
>お知恵をお貸しください。
>よろしくお願いいたします。

【75174】Re:VLOOKUPのセルを含むとエラーが出ます...
質問  しずか  - 13/12/26(木) 9:46 -

引用なし
パスワード
   ウッシさん、ありがとうございます。

早速試してみました。
エラーは起きませんが、MAXではないセルを装飾します。

また、セルの値ですが、小数点以下7桁というのがほとんどです。
整数で試してみたところ、正常に動きましたが、
関数で出た値をコピペして試した結果、MAXではない数値を装飾しました。
そういったことも関係あるのでしょうか?

また、当方エクセル2003を使用しておりますが、
そういったことも関係ありますでしょうか?

よろしくお願いいたします。

【75175】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/26(木) 10:16 -

引用なし
パスワード
   ▼しずか さん:

こんにちは

小数点以下があるのなら、

Dim m As Double

として下さい。

Long は整数を想定してました。


>ウッシさん、ありがとうございます。
>
>早速試してみました。
>エラーは起きませんが、MAXではないセルを装飾します。
>
>また、セルの値ですが、小数点以下7桁というのがほとんどです。
>整数で試してみたところ、正常に動きましたが、
>関数で出た値をコピペして試した結果、MAXではない数値を装飾しました。
>そういったことも関係あるのでしょうか?
>
>また、当方エクセル2003を使用しておりますが、
>そういったことも関係ありますでしょうか?
>
>よろしくお願いいたします。

【75176】Re:VLOOKUPのセルを含むとエラーが出ます...
質問  しずか  - 13/12/26(木) 12:54 -

引用なし
パスワード
   うっしさん
お世話になっております。

早速試してみましたが、
今度は、エラーが出るようになってしまいました。


整数ですと、エラーはでません。

何か他に処理をしなければいけないことがあるのでしょうか?


エラーは以下のとおりです。

----------------------

実行時エラー 91
オブジェクト変数またはWithブロック変数が設定されていません。

と、出ます。

----------------------
デバックを押すと、

.BorderAround Weight:=xlMedium, ColorIndex:=3

のコードに黄色のラインがあります。

----------------------


Sub てすと()

  Dim m As Double
  Dim t As Range
  With Range("A1:N10")
    m = Application.WorksheetFunction.Max(.Cells)
    Set t = .Find(What:=m, LookIn:=xlValues)
  End With
  With t
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
  End With 
  
  
End Sub

【75177】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/26(木) 13:35 -

引用なし
パスワード
   ▼しずか さん:

こんにちは

本当にそのコードのままですか?
そのエラーは、
Set t = .Find(What:=m, LookIn:=xlValues)
で目的のセルが見つかっていないという事です。

Range("A1:N10")の最大値で、Range("A1:N10")を検索しているので
tがNothingのはずは無いと思います。

ひょっとしてセルの書式設定で表示桁数とかセットしてないですか?


>うっしさん
>お世話になっております。
>
>早速試してみましたが、
>今度は、エラーが出るようになってしまいました。
>
>
>整数ですと、エラーはでません。
>
>何か他に処理をしなければいけないことがあるのでしょうか?
>
>
>エラーは以下のとおりです。
>
>----------------------
>
>実行時エラー 91
>オブジェクト変数またはWithブロック変数が設定されていません。
>
>と、出ます。
>
>----------------------
>デバックを押すと、
>
>.BorderAround Weight:=xlMedium, ColorIndex:=3
>
>のコードに黄色のラインがあります。
>
>----------------------
>
>
>Sub てすと()
>
>  Dim m As Double
>  Dim t As Range
>  With Range("A1:N10")
>    m = Application.WorksheetFunction.Max(.Cells)
>    Set t = .Find(What:=m, LookIn:=xlValues)
>  End With
>  With t
>    .BorderAround Weight:=xlMedium, ColorIndex:=3
>    .Font.Bold = True
>  End With 
>  
>  
>End Sub

【75178】Re:VLOOKUPのセルを含むとエラーが出ます...
質問  しずか  - 13/12/26(木) 19:49 -

引用なし
パスワード
   うっしさん

お世話になっております。


>ひょっとしてセルの書式設定で表示桁数とかセットしてないですか?

ほとんどが小数題7位まである値なので、
見栄え上、小数第3位で揃えています。

それかと思い、書式設定を標準にして、条件書式も消して
やってみたのですが、同じエラーが出てしまいます。


-----------------------------

いろいろ試してみたところ、
もしかするとですが、小数点が多すぎることに問題があるようです。

範囲の大きさにもよるようです。
範囲が大きいと小数点第1位まで
小さいと小数点3位まで、実行できたりします。

そういうものなのでしょうか?

お手数おかけして申し訳ありません。

【75179】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/27(金) 9:49 -

引用なし
パスワード
   ▼しずか さん:

範囲が広いとダメな理由が分からないですけど、

Sub てすと()
  Dim m As String
  Dim t As Range
  With Range("A1:I10")
    m = Format(Application.WorksheetFunction.Max(.Cells), "0.000 ") '実際のセルの書式にする
    Set t = .Find(What:=m, LookIn:=xlValues, LookAt:=xlWhole)
  End With
  With t
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
  End With
End Sub

のように変更するどうなりますか?


>>ひょっとしてセルの書式設定で表示桁数とかセットしてないですか?
>
>ほとんどが小数題7位まである値なので、
>見栄え上、小数第3位で揃えています。
>
>それかと思い、書式設定を標準にして、条件書式も消して
>やってみたのですが、同じエラーが出てしまいます。
>
>
>-----------------------------
>
>いろいろ試してみたところ、
>もしかするとですが、小数点が多すぎることに問題があるようです。
>
>範囲の大きさにもよるようです。
>範囲が大きいと小数点第1位まで
>小さいと小数点3位まで、実行できたりします。
>
>そういうものなのでしょうか?
>
>お手数おかけして申し訳ありません。

【75180】Re:VLOOKUPのセルを含むとエラーが出ます...
お礼  しずか  - 13/12/27(金) 11:03 -

引用なし
パスワード
   ウッシさん


お世話になっております。

出来ました!!
本当にありがとうございます!!


後学のために、どうしてできなかったのかと、
コードの意味を(簡単で構いません。あとは調べます。)
ご教授いただけるとありがたいです。

よろしくお願いいたします。

【75181】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/27(金) 11:41 -

引用なし
パスワード
   ▼しずか さん:

こんにちは

少数は丸め誤差があって取扱に注意が必要なので避けたいです。
今回の件には丸め誤差は関係ないかもしれないですけど・・・

Find で値検索(LookInをxlValues)すると、セルのTextプロパティの内容で検索しているみたいです。
日付の検索なら LookInをxlFormula にすると書式に関係なく検索出来るようですけど、今回の少数の
場合はダメでした。
なので、Maxで見つかった少数点以下7桁の値をセルの書式の少数点以下3桁に直してから検索するように
してみました。
見つかったセルを変数tにセッテして、tに罫線、太字を設定しています。

少数点以下3桁にした状態で最大値のセルが検索範囲に一つしかないという条件です。

Sub てすと()
  Dim m As String
  Dim t As Range
  With Range("A1:I10")
    m = Format(Application.WorksheetFunction.Max(.Cells), "0.000 ") '実際のセルの書式にする
    Set t = .Find(What:=m, LookIn:=xlValues, LookAt:=xlWhole)
  End With
  With t
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
  End With
End Sub

【75182】Re:VLOOKUPのセルを含むとエラーが出ます...
お礼  しずか  - 13/12/27(金) 13:02 -

引用なし
パスワード
   ウッシさん

そういうことだったのですね。
大変勉強になりました。
本当にありがとうございます。

また、なにか別件でお世話になることもあるかもしれません。
どうぞ、今後もよろしくお願いいたします。

このたびは、お世話になりました。

【75183】余談ですが・・・
発言  しずか  - 13/12/27(金) 13:58 -

引用なし
パスワード
   完全に余談ですが・・・

何故か表示画面をズームで小さくすると、エラーになります。
ズームで大きくすると、通常通り動きます。

そういうものなのでしょうか?

【75184】Re:余談ですが・・・
回答  ウッシ  - 13/12/27(金) 14:17 -

引用なし
パスワード
   ▼しずか さん:

こんにちは

ズームではなくて列幅を狭くして「####」のような表示になっていませんか?

Find はTextプロパティで検索しているようなので見た目が検索値通りになって
いないとエラーになります。

マクロに検索前にズームアップ(or 列幅調整)、検索後にズームダウン
とか入れてみてはどうですか?


>完全に余談ですが・・・
>
>何故か表示画面をズームで小さくすると、エラーになります。
>ズームで大きくすると、通常通り動きます。
>
>そういうものなのでしょうか?

【75185】Re:余談ですが・・・
お礼  しずか  - 13/12/27(金) 15:11 -

引用なし
パスワード
   ウッシ さん

見・た・目(@@;)?!

あまりにも、びっくりしすぎて
思わず顔文字を使ってしまうくらい、びっくりしました。

そういうものなのですね。

また一つ勉強になりました。
この度は、本当にありがとうございました。

1305 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free