こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL2011 Objectに入れたWor…改

お世話になります。

どうも
なんと言って
良いのか
本当に、済みません

スレットを、変えよう
と、して

念の、ため
確認に、再度
走らせて、みた
の、ですが

コメントアウト、させていても
☆で、添付映像の
エラーに、なります

もう頭が
??????
です

兎に角
エラー理由が、解りません

申し訳、ありませんが
お教え下さい。
    記
Option Explicit
Option Base 0

Dim Data(100, 100) As Long, Ch As Long, s1 As Long, s2 As Long, Ws As Worksheet, ランゲ As Range

Sub testMain() ' 簡易テスト
Dim 現状保存 As Worksheet, シート名 As String
 Let シート名 = ActiveSheet.Name
Application.ScreenUpdating = False
 Worksheets(シート名).Copy after:=Worksheets(Worksheets.Count)  '■
 Set 現状保存 = ActiveSheet                            '■
 Set Ws = Worksheets.Add()
' Worksheets(シート名).Copy after:=Worksheets(Worksheets.Count)  '*□
' Set 現状保存 = ActiveSheet                      ’□
' Worksheets(シート名).Select                    '*
 現状保存.Visible = False
' Ws.Visible = False                       '*
Application.ScreenUpdating = True
 Call ダミーデータ作成
 Call testC
 Call testV
 Call testE
Application.DisplayAlerts = False
現状保存.Delete
Ws.Delete
Application.DisplayAlerts = True
End Sub

Sub ダミーデータ作成()
 With Ws.Range("a1:cv100")
  .Formula = "=RANDBETWEEN(1,10000)"
  .Calculate
  .Value = .Value
 End With
 Let Ws.Cells(1, 101).Formula = "=MIN(" & Ws.Name & "!" & Ws.Range("a1:cv100").Address & ")"
 Ws.Cells(1, 101).Calculate
 For s2 = 1 To 100
  For s1 = 1 To 100
   Data(s1, s2) = Ws.Cells(s1, s2).Value
  Next s1
 Next s2
 Let Data(0, 0) = Ws.Cells(1, 101).Value
End Sub

Sub testC()
 Ch = 10000
 With Ws
  For s2 = 1 To 100
   For s1 = 1 To 100
    If Ch > .Cells(s1, s2).Value Then Ch = .Cells(s1, s2).Value
   Next
  Next
 End With
End Sub

Sub testV()
 Ch = 10000
  For s2 = 1 To 100
   For s1 = 1 To 100
    If Ch > Data(s1, s2) Then Ch = Data(s1, s2)
   Next
  Next
End Sub

Sub testE()
 With Ws
  Set ランゲ = .Range(Cells(1, 1))               '☆
 End With
End Sub

(※注:□の2行を コメントから 外す、時は 
同、■の2行を コメントアウトして、下さい)
                      以上

投稿日時 - 2017-05-12 11:42:30

QNo.9328351

困ってます

質問者が選んだベストアンサー

とりあえず、心当たる範囲、記憶の範囲での報告です。
検証はご自身でどうぞ。

> With Ws
> Set ランゲ = .Range(Cells(1, 1))
以下、右辺のみ記述。
  = .Range("A1")  '可
  = .Cells(1, 1)  '可
  = .Range("A1", "B2")  '可
  = .Range(.Range("A1"), "B2")  '可
  = .Range(.cells(1, 1), "B2")  '可
  = .Range(.cells(1, 1))  '不可
  = .Range(Cells(1, 1), Cells(1, 1)) '不可
これだけ例示があればお気づきかとは思いますが、
あとの検証はご自身でおやりになるか、
更なる識者の登場をお待ちください。


エクセルという神は万能ではありません。
正しく求めれば正しく与えてくれますが、
誤って求めれば誤って与えられます。
無視されることもありますし、叱られることもあります。

投稿日時 - 2017-05-12 12:31:29

お礼

有り難うございます

〉  = .Range("A1")  '可
〉  = .Cells(1, 1)  '可
〉  = .Range("A1", "B2")  '可
〉  = .Range(.Range("A1"), "B2")  '可
〉  = .Range(.cells(1, 1), "B2")  '可
〉  = .Range(.cells(1, 1))  '不可
〉  = .Range(Cells(1, 1), Cells(1, 1)) '不可
との事
ですが

拝見して
カッコ内に
点が、ある事に
まず、気付きました

で、
結論から、言えば

正直
記憶と、違った
ので
netに
確認に、行きました

そしたら
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_070.html
を、見つけ
根本的に、解決
しました 汗 (^_^;)

何か
申し、訳ない
感じ、ですが

やりとりを
させて、頂いた
お陰で
解決、しました

実は、此方を
全て、読んで
学んだ
そんな、サイト
なのですが
正直、忘れてました
済みません     (^_^;)


さて、後は
蛇足、ですが
.Range(.cells(1, 1))
が、可
じゃ、なかったか?
と、
不審に、思いまして
探した所
http://sugoikaizen.com/excelvba/column_80/

http://qiita.com/k287/items/23b9124a6f51d18c7b1b
では、
其のまま、肯定し
引用して、います

http://sugoikaizen.com/excelvba/column_80/
では、.Range(.cell1,.[cell2])
と、しています

http://pro.art55.jp/?eid=1304060
では、
Range(object cell1)
.Range(object cell1, object cell2)
と、しています

http://excel-ubara.com/excelvba4/EXCEL257.html
では、
ヘルプは
.Range(.cell1,.[cell2])

構文は
.Range(.cell1, .cell2)
と、指摘しているようです

実際に、MSDNでは
2013以降
と、して
https://msdn.microsoft.com/ja-jp/library/office/ff196273.aspx
では
.Range(.cell1,.cell2)
と、しています

残念ながら
2011以前の、MSDNは
見つけられなかった
の、ですが

此等を、見て
私は
本来は
.Range(.cell1,.[cell2])
だが

どうやら
2013以降は
凡ミスで
.Range(.cell1.cell2)
に、してしまった
と、見受けました

実際、
私が、過去
覚えた、記憶も
前者の、
.Range(.cell1,.[cell2])
でして…

先に、挙げた
.Range(.cell1,.[cell2])
記述の、URLアドレスは
古かったり、
2010対象
だったり、
します

また、
.Range(.cell1,.[cell2])

Cell1は
"A1"や、Cells(x,y)に
ともに、相当する
ので

理屈上は
.Range(.cell(1,1),.[cell2])
の、筈
なのです


やらかして
押し通そう
と、した
の、ですね

Microsoftの
よく、やる
パターン、ですね


此からも
多くの、方に
解答を寄、せられる
かな?
と、思いまして

バージョンに、ついて
感謝の、気持ちの
蛇足、調査報告
です

もう一度、言います
有り難うございます

投稿日時 - 2017-05-12 15:46:26

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問