トップページtech
1001コメント341KB

Excel VBA 質問スレ Part37 [転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2015/01/10(土) 07:06:30.56ID:2VZ4g5kC
ExcelのVBAに関する質問スレです

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人は別スレ建ててください。

※前スレ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
http://peace.2ch.net/test/read.cgi/tech/1419718732/

※頭のレスの方でキチガイが束縛テンプレを貼る詐欺行為が前スレまで散見されましたので、十分にご注意ください。
0357デフォルトの名無しさん2015/06/29(月) 07:14:49.86ID:bvi+oDiY
>>301 >>322でのLt0oVZOgの考え方が奇妙だ
0358デフォルトの名無しさん2015/06/29(月) 07:19:17.63ID:RWXntF+6
>>356
無駄だよ。結局>>354で言ってた後者に該当して、
一生懸命誤魔化すために定義をすり替えようとしてるの見え見えじゃん。
いつものようになんだかんだ御託を付けて煙に巻こうとする
それがCプラプラークオリティ。
0359デフォルトの名無しさん2015/06/29(月) 08:01:33.83ID:s7kCM2zI
>>356
定義あったんか
0360デフォルトの名無しさん2015/06/29(月) 08:06:21.49ID:2N/zEhbN
>>358
お前は馬鹿なんだから黙ってろってw
0361デフォルトの名無しさん2015/06/29(月) 08:28:14.08ID:TRRTpdMk
少なくとも >>339 への回答がない間は、知ったか君がオレオレ定義で吹いてるだけにしか見えない
まあ、>>316 みたいな具体的な回答をスルーしてることで実力はお察しレベルなんだろうけど
0362デフォルトの名無しさん2015/06/29(月) 08:56:57.99ID:s7kCM2zI
ちょっと検索した感じじゃ特に定義された用語じゃなさそうだね。「インスタンス」
VBAもしープラプラも全面オブジェクト指向してないから、これの最初の段落のことしか言えなそう。
http://sp.e-words.jp/w/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9.html
Wikipediaの解説の方は「問題点あり」になってる。
0363デフォルトの名無しさん2015/06/29(月) 11:50:32.15ID:s7kCM2zI
>>361
まあSafaArrayCreate 関数が、ってはその通りなんだけど、可変長のものをヒープ以外のところに確保できると思ってたのかねえ>>314は。謎だ。
0364デフォルトの名無しさん2015/06/29(月) 12:37:41.33ID:TRRTpdMk
>>362
まあ、ヒープ上に作られた実体をインスタンスって言ってるんだと思うけど...
まあ、オレオレ定義でいいからちゃんと定義晒してもらわないとなんとも言えんわな

>>363
実装方法知ってたらまずそこ思うよね
0365デフォルトの名無しさん2015/06/29(月) 16:41:03.08ID:s7kCM2zI
師匠のライブラリ使えばある程度解決するんだよ
0366デフォルトの名無しさん2015/06/29(月) 16:53:34.08ID:ZS1C/3AC
>>365
師匠って誰だよ?
0367デフォルトの名無しさん2015/06/29(月) 18:13:06.76ID:n/Ot7XJM
定義の話をするなら、そもそも
VBAの公式の資料で値型/参照型という用語をみたことがないんだが
0368デフォルトの名無しさん2015/06/29(月) 19:16:29.87ID:s7kCM2zI
話は変わるけど64bitのExcel2010のイミディエイトペインで 2.5^ 2 とか巾乗計算するとExcelが落ちない?
2.5と^の間にスペースを挟めば大丈夫なんだけど、そうしないと落ちる。
0369デフォルトの名無しさん2015/06/29(月) 19:53:15.12ID:UcQNe/b5
>>367
「VBA 値型」で検索したらMSDNで
ttps://msdn.microsoft.com/ja-jp/library/dd314344.aspx

が出てきたけどよく見たら.Netだった紛らわしい。
0370デフォルトの名無しさん2015/06/29(月) 21:42:09.79ID:/k/OkC/p
>>369
それとか、
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
とか見て早とちりしたんだろうなって思う
このページも VBA 参照型 でヒットするくせに VB6/VB.NET が混在してて分かりにくいし
0371デフォルトの名無しさん2015/06/29(月) 21:46:02.65ID:2N/zEhbN
話は変わるけど今何の話してるの?
0372デフォルトの名無しさん2015/06/29(月) 22:10:14.97ID:s7kCM2zI
いままでに見た最も痛いVBAコードの話
0373デフォルトの名無しさん2015/06/29(月) 22:22:02.06ID:rq2QsCgv
・Option Expicitがない
・日本語で型指定なし変数宣言
・1サブプロシージャ1000行
・ボタンがたくさんあるのにModule1個
痛くはないけど、解析がとにかく辛かった
0374デフォルトの名無しさん2015/06/29(月) 23:18:19.68ID:s7kCM2zI
ループカウンタはLongで、あとは全部Variant。だけどそうするしかないコード。
0375デフォルトの名無しさん2015/06/29(月) 23:22:41.60ID:3jcGZRUX
Integerはだめか?
0376デフォルトの名無しさん2015/06/30(火) 00:08:24.22ID:oheNslA5
intのほうが遅いという罠
0377デフォルトの名無しさん2015/06/30(火) 07:51:30.16ID:ZBtEU6fC
まじかよやっぱりVBA糞だわ
0378デフォルトの名無しさん2015/06/30(火) 07:59:10.10ID:cuvzrYNR
Variantは遅い、とかも含めて実用上の観点ではほとんど都市伝説の域ではないか。
0379デフォルトの名無しさん2015/06/30(火) 08:15:01.29ID:+uB1KRi8
>>378
Cell とかのアクセスの方が全然遅いし、そもそも Variant で遅いとか言うほどデータ量でかいなら Access とか SQL-Server 使うべきだしね
地味にいまだに 64KB 制限あったりするし w
0380デフォルトの名無しさん2015/06/30(火) 09:40:46.17ID:GcuTOY9X
>>379
「VBA 64kb制限」でぐぐってみたら、小学生並みの文章のgoo質問が出てきてすっかり萎えた。
0381デフォルトの名無しさん2015/06/30(火) 19:46:24.84ID:K4kCbRr+
アクセスって使えるのか?
エクセルと同じデータ持たせて何十倍ってデータ量になって実用に耐えないと感じた記憶しかないんだが。
0382デフォルトの名無しさん2015/06/30(火) 20:22:54.40ID:YayzGG6j
Excelでデータ管理してるよりはまだマシ
Excelだけじゃ集計処理とか大変だし
SQL使えないし、コード突き合わせもクエリで一発
自分だけ使う分ならAccessで十二分
ただし複数人共有で使うのは論外
0383デフォルトの名無しさん2015/06/30(火) 21:10:44.20ID:I4Ac0QOz
>>381
Excel と同じデータで mdb が xls の何十倍になってるならなにか間違えてる
0384デフォルトの名無しさん2015/06/30(火) 21:11:03.98ID:Ws6hqNxp
>>381
確か1Mくらいまで使えたような
0385デフォルトの名無しさん2015/06/30(火) 21:26:58.91ID:Ws6hqNxp
>>382
アクセスと同じようにJet4.0使うならExcel のシートにもSQL投げられるよ。
それどころかフォーマットさえしっかりしていればCSVにだって投げられる。
0386デフォルトの名無しさん2015/06/30(火) 22:16:11.34ID:BiTNAw1o
そもそもデータの持ち方として、テーブル形式はもはや時代後れ。
xmlとかjsonとかが主流になるよ。
SQLは性能劣化とバグの温床だし。
SQLちょいと書き直すと処理能力10倍とかざらだから。
0387デフォルトの名無しさん2015/06/30(火) 23:01:31.71ID:fROSMXtx
VBAでセルに数式を代入する場合、数式を文字列で代入すればよいですが、
連想配列をセルに代入する場合は、どのようにコードを書けばよいのわからず、ハマっています。
手で入力する場合の、Ctrl+Shit+Enterをどうやればいいのか...
VBAで連想配列処理を行うのではなく、連想配列式をVBAでセルに代入したいのですが、やり方がわからない。。
詳しい先輩方、ご指導くださいませ。
0388デフォルトの名無しさん2015/06/30(火) 23:18:25.32ID:fROSMXtx
自己解決しまぢた。
FormulaArrayプロパティで設定するんですね。

失礼致しました。。
0389デフォルトの名無しさん2015/06/30(火) 23:31:59.27ID:tOsGp7lH
>>388
それ連想配列じゃなくて配列数式だろ?
連想配列ってmapとかのことだぜ。
0390デフォルトの名無しさん2015/06/30(火) 23:46:00.56ID:fROSMXtx
>>389
ですね。。
なんで検索しても引っかからなくて、質問しちゃったんですね。
"配列数式"って単語がウル覚えで、
検索したら"連想配列"がいっぱいでてくたもんで...
0391デフォルトの名無しさん2015/06/30(火) 23:56:03.52ID:tOsGp7lH
VBA的にはDictionaryか
0392デフォルトの名無しさん2015/07/01(水) 01:10:32.10ID:jqNSI/h3
>>386
xamlは流行りませんかそうですか
0393デフォルトの名無しさん2015/07/01(水) 07:04:49.59ID:6h4b9tb7
SQLがバグの温床とかありえん。使う人の頭が悪いだけだよ。
0394デフォルトの名無しさん2015/07/01(水) 07:53:05.06ID:jqNSI/h3
xmlは設定ファイルとかで使うことはあるけど、
データベースとして使うのに耐えうるものなの?
0395デフォルトの名無しさん2015/07/01(水) 08:53:19.12ID:D21eOTfg
ステマっぽさある
0396デフォルトの名無しさん2015/07/01(水) 11:52:06.80ID:yoCegXat
なんだってそう  悪いのは相手 向こう 道具  おれはこれっぽっちも悪くない まちがってない!
0397デフォルトの名無しさん2015/07/01(水) 12:03:15.44ID:tJW6CsdE
>>394
全くと言っていいほど使い物にならないので、廃れましたよ。
完全敗北です。

いまじゃ、MongoDBのようなものも出てきていますしね。XMLDBが復権する
事はもうありませんよ。
0398デフォルトの名無しさん2015/07/01(水) 12:04:30.63ID:tJW6CsdE
ちなみにXMLDBの遅さは、

第三形態になったフリーザ vs ベジータの戦いみたいなもの。
もちろんベジータがXMLDBだ。
0399デフォルトの名無しさん2015/07/01(水) 12:17:10.42ID:mPxMjEr/
XMLDB ってそのままの形で扱う訳じゃないでしょ
他のプログラムが出力した XML を読み込んで処理するためのものだと思ってたけど...
要するに CSV の代替じゃないのかな?
0400デフォルトの名無しさん2015/07/01(水) 12:27:12.70ID:iTWnMbVI
おいエクセルは?VBAは?!
0401デフォルトの名無しさん2015/07/01(水) 12:33:07.87ID:D21eOTfg
>>400
セル範囲に対して
範囲.Value ってやると2次元配列が取得できて便利だね!
だけど 矩形(長方形)じゃない飛び飛びの範囲だと思わぬ結果になって罠だね!
0402デフォルトの名無しさん2015/07/01(水) 21:49:36.73ID:r6P8NuLo
>>399
過去の歴史を勉強したまえよww
0403デフォルトの名無しさん2015/07/01(水) 22:24:17.39ID:huUe7xTB
>>402
アホ晒して楽しいのか? w
0404デフォルトの名無しさん2015/07/01(水) 22:25:12.56ID:r6P8NuLo
>>403←アホの事例ですね。
0405デフォルトの名無しさん2015/07/01(水) 23:43:00.11ID:s4VVys9R
ワシはティンコを2本もっている
2本目はとっておきだ(´・ω・`)b
0406デフォルトの名無しさん2015/07/02(木) 05:03:52.50ID:D0UhKb7j
>>404
具体的な内容を書けないなら無理にレスするなよ w
0407デフォルトの名無しさん2015/07/02(木) 05:22:03.78ID:9qb5cWlQ
xml形式はその昔、「人が読めて、実装も簡単で、拡張性もあり、内容構造の変更も簡単」という利点を強調されてたな。
でも意味づけする為に修飾子が大量にくっついてくるわけだから大型のデータベースには向かないのは確かだろうな。
0408デフォルトの名無しさん2015/07/02(木) 09:37:50.18ID:CcSdJJgr
>>406
おまえなんか具体的な事書いてんの?
0409デフォルトの名無しさん2015/07/02(木) 20:19:18.42ID:RENWNoB4
シート毎(シート名は対象月)に翌月10日を指定し、指定日以降に対象シートを開いたら処理A を行う 
という動きをさせたいのですが、以下の式では、1月以降を指定月日としたシートを開くと、処理が実行されてしまいます。
(年を見ていないので当然ですが・・・)
これを回避するには、どのようにすればよいのでしょうか?

※指定月日を"年月日"にすれば回避できますが、毎年のメンテナンスが必要となるので、それは避けたいです。

Sub Sheetlock()
Dim MyMonth As String
Dim MyDate As Date '指定月日
MyMonth = ActiveSheet.Name

Select Case MyMonth
Case "4月度"
MyDate = "5/10"
Case "5月度"
MyDate = "6/10"
〜略〜
Case "12月度"
MyDate = "1/10"
Case "1月度"
MyDate = "2/10"
Case "2月度"
MyDate = "3/10"
Case Else
MyDate = "4/10"
End Select

If MyDate <= Date Then
処理A
End If
End Sub
0410デフォルトの名無しさん2015/07/02(木) 20:26:36.22ID:cgPWlYAt
>>409
指定日はDateと比べるんだから、指定日の年はDateの年を設定すればいい
指定日は終了日だけじゃなくて開始日も必要だろう
0411デフォルトの名無しさん2015/07/02(木) 20:49:29.04ID:RENWNoB4
>>410

5/10から12/10まで MyDate = year(Date)&"月日"
1/10から4/10まで MyDate = year(Date)+1&"月日" とせよ、
という理解であっておりますでしょうか?

その場合、例えば2016/1/10に"12月度"のシートを開いても、
指定日が2016+1 /1/10 となってしまい、処理は実行されないと思うのですが、、、
0412デフォルトの名無しさん2015/07/02(木) 20:50:31.63ID:9qb5cWlQ
>>409
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oMonth As Byte, oYear As Integer, oDate As Date

oMonth = CByte(Left(Sh.Name, Len(Sh.Name) - 2)) + 1
oYear = Year(Date)

If oMonth > 12 Then
oMonth = 1
oYear = oYear + 1
End If

oDate = CDate(oYear & "/" & oMonth & "/" & 10)

If oDate <= Date Then
MsgBox "処理A"
End If
End Sub

ThisWorkbookに貼り付け。
0413デフォルトの名無しさん2015/07/02(木) 21:01:08.22ID:9qb5cWlQ
>>411を読んで「確かにそうだわ」と思って書き直し。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oMonth As Byte
Dim f As Boolean

oMonth = CByte(Left(Sh.Name, Len(Sh.Name) - 2)) + 1
If oMonth > 12 Then oMonth = 1

If oMonth < Month(Date) Then
f = True
ElseIf oMonth = Month(Date) Then
If Day(Date) >= 1 Then f = True
End If

If f Then
MsgBox "処理A"
End If
End Sub

12月度が反応しちゃうけど「いつまで反応し続けるか」が条件にないし、年度管理しないとそんなもんかなぁ。
0414デフォルトの名無しさん2015/07/02(木) 21:04:45.30ID:9qb5cWlQ
>>413
あ、Dayの指定をテスト状態から戻して無かったわ。
下から6行目の所、

If Day(Date) >= 10 then f = True

にしといて。
0415デフォルトの名無しさん2015/07/02(木) 21:28:54.52ID:cgPWlYAt
>>411
12月ってのは、当年のなのか?前年または翌年なのか?
当年の12月なら、2016/1/10において12月度(2016/12/11-2017/1/10)はまだ到達してないから
処理が実行されないのは正常だよね
当年度の12月というのであれば、当日が4/1以降かどうかで当年か前年か切り替えないとダメだろう(年度切り替えが4/1だとして)
0416デフォルトの名無しさん2015/07/02(木) 21:39:28.39ID:R9hbfqH1
ブックに対象年度の情報がなければ正確な処理は論理的に不可能です
0417デフォルトの名無しさん2015/07/02(木) 21:59:38.14ID:cgPWlYAt
>>416
対象の年度が何らかの方法で確定できるなら、ブックに対象年度が無くても理論的には可能です
たとえば
対象の年度は現在の年度とし、現在の年度はPCの操作時の日付より確定できるときとかな
まあ、対象年度の情報はいらないが、年度に関する何らかの情報は必要かもしれんが
年度確定のための情報(年度開始日)とかな

つか俺VBAの話一切してないなw
0418デフォルトの名無しさん2015/07/02(木) 22:22:25.92ID:R9hbfqH1
>>417
それはまた随分非論理的な理論ですね。
どこかで発表されているのでしょうか、その理論は?
0419デフォルトの名無しさん2015/07/02(木) 23:49:36.87ID:PhnYLcQw
>>416
うん。俺も無理だと思った。
頭が決まってないんだから、何をもって年が始まったばかりなのか、
1周して来たのかを確定出来ないと思う。
0420デフォルトの名無しさん2015/07/03(金) 00:18:24.08ID:xQFZnjt9
どうせbook名に2015とかついてるだろうからそこから取得すれば?
0421デフォルトの名無しさん2015/07/03(金) 08:21:48.74ID:zaw8UGxR
>>420
もうそういう反吐の出るような作り方してる奴は無視でいいよ。
0422デフォルトの名無しさん2015/07/03(金) 10:14:07.01ID:bMlB0lVi
>>420
そういう解決法はありありだと思うけどなぁ。
シート名に情報入れといて抜き出すとかも。
0423デフォルトの名無しさん2015/07/03(金) 10:48:31.53ID:tIDo5nwi
マクロと一緒のディレクトリにテキストファイル置いて
「2015」とか書いて読み取るとか。
0424デフォルトの名無しさん2015/07/03(金) 11:10:15.29ID:zaw8UGxR
>>422
ドキュメントプロパティを使えよ・・・ブック名なんていい加減なもの使わないで。
0425デフォルトの名無しさん2015/07/03(金) 12:22:12.36ID:xJ8vVgP9
ファイル名は確実なアイデンティティだぞ
0426デフォルトの名無しさん2015/07/03(金) 12:26:17.84ID:vPK10GoB
別なページに「2015」って年度入れると、
その年度の月度毎のテーブル作るようにしといて、
他のページはそこを参照させるとかなら簡単、というかメンテしやすい

まあ、ページ開くとマクロ実行なんてオレは実装しないんで良いけど
0427デフォルトの名無しさん2015/07/03(金) 13:20:39.05ID:bMlB0lVi
>>424
ドキュメントプロパティの読み込みは時間かかるからね。
例えば、1000ファイルの中の処理対象100ファイルを特定するのに、Dir.glob()系の機能で
探した方が高速でしょ。

ドキュメントプロパティにしか情報が無いと、全ファイルをオープンしないと、処理対象が
わからない。

それと、hoge_2015.xlsxというファイルをコピーして2016年用のファイルを作るとき、大抵の
人ならhoge_2016.xlsxというファイル名にするはず。
ドキュメントプロパティに設定しないといけないなんて、思いつく人はほとんどいない。

ただ、ドキュメントファイル内のメタデータを活用できるツールを使ってるなら、ドキュメント
プロパティは積極的に使うのがいいと思う。
0428デフォルトの名無しさん2015/07/03(金) 14:04:17.97ID:R//i/7GN
>>422
同意
ただし、速度とかじゃなくて、大抵の利用者にとってその方が簡単で、分かりやすくて、間違いにくいから
データ量が多いなら >>423 とかもあるけど年号程度ならファイル名で充分
ドキュメントプロパティとか言ってる奴は自称℃玄人の臭いがする w
ユーザーに触らせないちょっとした設定とかを置くにはいいんだけどね
0429デフォルトの名無しさん2015/07/03(金) 14:05:48.12ID:R//i/7GN
>>408
>>402 に比べれば >>399 の方がより具体的だろ?
0430デフォルトの名無しさん2015/07/04(土) 13:21:08.55ID:U38uGtdG
しょうもないけど分かりやすいソリューションは生き残る
0431デフォルトの名無しさん2015/07/04(土) 14:34:10.54ID:WvwJxr10
>>424
次にお前は「コピペしたままプロパティ修正漏れの犯人誰だ!? コロセ」という
0432デフォルトの名無しさん2015/07/04(土) 14:47:41.85ID:n+Lf90L5
コピペしたままプロパティ修正漏れの犯人誰だ!? コロセ


はっ!!
0433デフォルトの名無しさん2015/07/04(土) 19:49:31.36ID:CDSb/b0p
居たぞ!あいつだ!
撃てー!!
0434デフォルトの名無しさん2015/07/05(日) 01:16:07.81ID:YU79Y+KK
Dim myCell As Range
myCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")

このような記述の後は、その都度ブック名やワークシート名を明記しなくても、
myCellがThisWorkbookのSheet1のA1セルであることは保証されますか?
つまりブック名やワークシート名を省略しても大丈夫でしょうか?
0435デフォルトの名無しさん2015/07/05(日) 01:42:12.25ID:SLIL1g2F
Dim myCell As Range
Set myCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")
これで大丈夫
0436デフォルトの名無しさん2015/07/05(日) 03:20:04.46ID:YU79Y+KK
>>435
ありがとうございました。
0437デフォルトの名無しさん2015/07/05(日) 09:04:41.96ID:vbphD8dy
あるアプリケーションソフトで
データファイルを与えたらそれを分析して画像ファイルとして出力してくれるものがあるのですが
これらの操作をVBAのコードで書いて自動化することはできますか?
0438デフォルトの名無しさん2015/07/05(日) 09:08:34.05ID:vbphD8dy
「データファイルを与えたらそれを分析して画像ファイルとして出力」の部分は
本来ならそのアプリケーションを立ち上げた状態で
ファイル(F)→開くで開いて、そのアプリに特有な操作(といってもツール→出力みたいな操作)をしないといけません。
0439デフォルトの名無しさん2015/07/05(日) 09:09:42.08ID:vbphD8dy
つまりVBAで
・あるアプリを開く
・そのアプリを操作する (メニューバーからの選択だけのわりと単純)
のコードは書けますか?
0440デフォルトの名無しさん2015/07/05(日) 09:28:22.63ID:ayYTjQLc
>>439
コマンドラインからの操作ならWScriptを介せば出来る。ただそのソフトからの出力を直接受け付ける事は出来ない。
0441デフォルトの名無しさん2015/07/05(日) 09:50:10.08ID:vbphD8dy
>>440
ありがとうございます。
ところでWScriptとはなんでしょうか?
出力はそのソフトが勝手にファイルを作ってくれるなら大丈夫でしょうか?
0442デフォルトの名無しさん2015/07/05(日) 11:30:21.63ID:XIvEwRaJ
Windows Script Host (WSH)

VBScript (VB)か、JScript (JavaScript)で、
プログラミングする
0443デフォルトの名無しさん2015/07/05(日) 14:55:03.32ID:CZs4iz8t
)))))))))))(´・ω・`)b
04444442015/07/05(日) 14:55:29.29ID:CZs4iz8t
444げっち(´・ω・`)b
0445デフォルトの名無しさん2015/07/07(火) 06:53:14.99ID:N5IK5nOl
質問です

今VB6でExcelのシートを追加して一覧を作成する処理を作ってるんですが
BookやSheetを扱うときはBookやSheet用の変数を用意してそれを使って
最後に必ず解放しないとメモリにゴミが残ると聞きました

RangeやCellsもそうしないとだめですか?
0446デフォルトの名無しさん2015/07/07(火) 08:28:55.91ID:xJTxnmtV
適当に解放は不要だと言ってみる
0447デフォルトの名無しさん2015/07/07(火) 12:33:14.63ID:L2fl7GI9
>>435
Sheet1.Range()ってやればいいのに、なんでworksheets()ってやる馬鹿が多いの?
シート名変えたら動かなくなっちゃうじゃん。
0448デフォルトの名無しさん2015/07/07(火) 12:34:16.38ID:IXfNO3Pf
シート変えても動くようにするためでしょ
0449デフォルトの名無しさん2015/07/07(火) 12:35:47.32ID:4626lywF
>>447
オブジェクト名変えたら動かなくなっちゃうじゃん
0450デフォルトの名無しさん2015/07/07(火) 12:38:02.42ID:L2fl7GI9
>>448
はw?
シート変えるなら
Sheet2って変えればいいだけでしょ、

コレクションで指定だと、存在しないシート指定してたら実行時までエラーがわからんぞ。
コンパイルで弾くようにしろって。
0451デフォルトの名無しさん2015/07/07(火) 12:40:05.65ID:L2fl7GI9
>>449
オブジェクト名変えたら動かなくていいんだよw
シート名変えて、コードないの変えるべきとこ変えないで動いてる方が問題だろw
0452デフォルトの名無しさん2015/07/07(火) 12:41:29.85ID:L2fl7GI9
動的って条件がなかったな。
そういう条件があればそれでいいよ
0453デフォルトの名無しさん2015/07/07(火) 12:42:58.35ID:L2fl7GI9
でも、この場合Sheet1をベタ打ちしてるんだからSheet1しか参照しないだろ
0454デフォルトの名無しさん2015/07/07(火) 12:43:24.00ID:4626lywF
>>451
落ち着いて自分のレス読み直してみろ
0455デフォルトの名無しさん2015/07/07(火) 12:46:45.79ID:L2fl7GI9
>>454
Sheet1って指定しときゃシート名変えても動くのしらなかった?
名前経由じゃなくてオブジェクトを直接参照してるって仕組みわかってる?
0456デフォルトの名無しさん2015/07/07(火) 12:46:47.13ID:4626lywF
まあ、そんなもんはどっちでも良いんだよ。
本当に問題があるのは、こうでなければいけないっつー凝り固まった頭。
■ このスレッドは過去ログ倉庫に格納されています