Excel VBA 質問スレ Part38 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/09/07(月) 18:59:39.00ID:E2JS6OsF___
___ /____ヽ ____
/____\ | |´・ω・`| | /___ヽ
.l |´・ω・`| ニX二 . ̄ ̄ ̄ 二X二 |´・ω・`| l 俺たちに任せろ
!、 ̄ ̄ ̄ ヽ | | /  ̄ ̄ ̄/
ヽ_/ヽ、 ヽ__) \__/\_/. /_/ ノヽ_/
 ̄  ̄ ̄
このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。
コードが嫌な人・作成依頼が嫌な人は別スレ建ててください。
※前スレ
Excel VBA 質問スレ Part37 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420841190/
0263デフォルトの名無しさん
2015/10/04(日) 23:20:01.96ID:oDZ+VI3p0264260
2015/10/05(月) 01:19:20.52ID:PnYDCBrnwin8.1では動いてます。
>>262
まじですか!自分のはwin8.1→10のノートパソコンですが駄目でした。
いまwin8.1に戻してしまったので、エラーコードかめんどくさがらずに書くべきでした。
すいません。原因不明のエラーと表示されていたきがします。
>>263
ログイン先に行く前の段階でエラーがでます。
Set objIE = CreateObject("InternetExplorer.application") ここでエラーになります。
0265デフォルトの名無しさん
2015/10/05(月) 07:42:00.17ID:7DDjvrpa何考えてんだか
0266デフォルトの名無しさん
2015/10/05(月) 08:43:26.84ID:1C0sZUC/259です。
レスありがとう。
後の書き込みも含めて参考にします。
0267デフォルトの名無しさん
2015/10/05(月) 13:56:42.70ID:CB+0+6Bh一応聞くけど・・・
IEを手動で起動できるかためしてみました?
0268デフォルトの名無しさん
2015/10/05(月) 14:42:30.01ID:PnYDCBrnはい、ためしました。
ほかの証券会社のツールもIEからの起動が必要でそれは、ちゃんと動きました。
起動したIEの横にはみなれない黄色いニコちゃんマークがついていてそれをクリックすると、マイクロソフトに意見を送るみたいなものがでてきました。
0269デフォルトの名無しさん
2015/10/06(火) 03:08:54.29ID:s30vzD+yWorksheet_Calculateのイベントが1分間発生しなかった時に処理Bを行わせたいのです。
それを実現する方法が浮かびません。どなたか教えて下さい。
Win7(64)+Excel2010です。
0270デフォルトの名無しさん
2015/10/06(火) 03:41:02.57ID:RhU5oO7Chttp://www.asahi-net.or.jp/~zn3y-ngi/YNxv214.html#8-1
0271デフォルトの名無しさん
2015/10/06(火) 13:27:42.67ID:s30vzD+yありがとうございます。
ただもう少し詳しく教えて下さい。
Worksheet_Calculateの終了直前時刻をDate型変数に格納、
時刻を格納後に(Worksheet_Calculate内で)タイマーをセットするということですか?
1分以内にWorksheet_Calculateが開始された場合、タイマーを解除しなければなりませんが、
そのようなことはできるのでしょうか?
0272デフォルトの名無しさん
2015/10/06(火) 14:00:40.81ID:hiQs0jh9そういうのはフラグで管理する
1分のタイマーでフラグを立てる
メインはフラグを見て、立ってたら実行する、立ってなかったら実行しない
0273デフォルトの名無しさん
2015/10/06(火) 14:11:14.62ID:hXnC6CWE丁寧に聞いてるのはいいとしても、なんでも相手に聞いて、
自分で考えなくて済むっていうのは、相手に対して失礼ですよ。
どうすればいいのか、そのヒントをもらってるんだから、
方法に疑問が待ててるのなら、まずそれを試すべきではないですか?
0274デフォルトの名無しさん
2015/10/06(火) 14:53:30.20ID:8pBv5L1n> 1分以内にWorksheet_Calculateが開始された場合、タイマーを解除しなければなりませんが、
> そのようなことはできるのでしょうか?
できる。
できるが、解除には起動したときの情報が必要。
Private Sub Worksheet_Calculate()
'タイマー起動済みなら解除する
If Len(executeAt) > 0 Then
Application.OnTime executeAt, "foo", , False
End If
'なにか処理する
executeAt = Now() + TimeValue("00:00:05")
Application.OnTime executeAt, "foo"
End Sub
'module1.bas
Public executeAt As String
Public Sub foo()
executeAt = ""
'なにか処理する
End Sub
0275デフォルトの名無しさん
2015/10/06(火) 16:53:57.77ID:s30vzD+y最後にWorksheet_Calculateを実行した時刻を記憶し
そこから1分以内にWorksheet_Calculateが実行されたフラグ=Falseにして、
フラグ=falseならプロシージャを実行しないということですか。
なるほどありがとうございました。
>>273
今エクセルできる環境でないのと、理解力が足りてないので好意に甘えてしまってます。
申し訳ありません。知恵をつけて頑張ります。
>>274
解除できるんですね。
あまり見かけない情報なのでとても参考になります。
ありがとうございました。
0276デフォルトの名無しさん
2015/10/06(火) 17:22:28.83ID:8pBv5L1n> 解除できるんですね。
> あまり見かけない情報なのでとても参考になります。
俺も今回ググって知ったからね。
「Application.OnTime 解除」でググったら、ここで聞くまでもなく解決したかもね。
0277デフォルトの名無しさん
2015/10/10(土) 03:55:34.16ID:uc7CQwkx<質問内容>
リストボックスにsheet2のA1:A13に入力されている内容を一覧表示したいのですが、何故かsheet1のA1:A13の内容が表示されてしまいます。
どの様な原因が考えられるでしょうか。お手数ですがご教授願いますm(__)m
(シートは「sheet1」、「sheet2」、「sheet3」があります)
<環境>
Windows7 home premium(64bit)+Excel2007
<作成手順>
1.「挿入>ユーザフォーム」からユーザーフォームを作成
2.「ツールボックス>リストボックス」からリストボックスを作成
3.作成したユーザーフォームを選択した状態でコードを表示し、以下のコードを入力
Option Explicit
Private Sub UserForm_Initialize()
Dim objsheet As Worksheet
Set objsheet = ThisWorkbook.Worksheets(3)
ListBox1.RowSource = objsheet.Range("a1:a13").Address
ListBox1.MultiSelect = fmMultiSelectExtended
End Sub
4.上記コードを標準モジュール(Module1)から以下の様に呼び出し実行
Sub Test()
ユーザーフォーム.Show
End Sub
0278277
2015/10/10(土) 04:07:02.62ID:uc7CQwkx誤: Set objsheet = ThisWorkbook.Worksheets(3)
正: Set objsheet = ThisWorkbook.Worksheets(2)
正しくは上記の通りです。
Worksheetsをインデックス指定、シート名指定とそれぞれ数パターン試してみたのですが
("sheet2")、("sheet3")や(2)、(3)の場合でも、sheet1のA1:A13の内容が表示されてしまいます。
以上
0279デフォルトの名無しさん
2015/10/10(土) 05:55:55.11ID:C+B5gV9T俺は、
.ListBox1.AddItem.Cells(i,0) = Objsheet.Cells(i,1)
を薦めるけど
0280デフォルトの名無しさん
2015/10/10(土) 09:13:52.25ID:PLSIx7MGobjsheet.Range("a1:a13").Address(1,1,1,1)
それか
Dim L(12) As String
Dim i As Long
Dim c As Range
With Worksheets("Sheet2")
Set c = Range(.Cells(1, 1), .Cells(1, 13))
End With
For Each x In c
ReDim Preserve L(i)
L(i) = x
i = i + 1
Next
ListBox1.List = L
0281デフォルトの名無しさん
2015/10/10(土) 09:45:53.50ID:LK1jtOCB最初にLを L(12) と宣言してるのに
わざわざループの中で毎回Redimする意味が分からない
あと x だけ宣言してない意味も分からない
0282デフォルトの名無しさん
2015/10/10(土) 09:51:36.43ID:PLSIx7MGああ、ごめん。それはいつものクセだ。これだとエラー出るな。
仕事でやる時は要素数固定な方が稀なんで忘れてた。
ちなみにVariant型は宣言しない方が処理が早いんだよ。
0283デフォルトの名無しさん
2015/10/10(土) 10:13:17.20ID:C9mCx++X確かに早いかもしれないけど、変数宣言してないほうが違和感凄い
277のコードはOption Explicit付いてるからそのままだと動かないね
0284デフォルトの名無しさん
2015/10/10(土) 10:18:44.34ID:LK1jtOCB俺も静的な配列の宣言ってやらないけど、
対象の要素数が不定であっても、
ループ前に確定してるならループに入る前にRedimしとくな
ループ内でRedimするのは
その時々で配列に入れるかどうかを判定してるときだけだね
あと、大して変わるとも思わんけど速くしたいなら
x もRange型で宣言するほうがいいんじゃないの?
0285デフォルトの名無しさん
2015/10/10(土) 10:29:02.02ID:PLSIx7MGRange型からRange型への代入よりRange型からVariant型への代入の方が早い。
たぶんRange→Variantだと丸ごとのmemcpyだけどRange→Rangeは要素毎にmemcpyしてるんだと思う。
っていうか他人のコードにいちゃもんつけてる暇あったら自分で書いて欲しい。
別に俺が皆様の為にコード書くスレじゃ無いし、いちいち指摘される意味が分からん。
0286デフォルトの名無しさん
2015/10/10(土) 10:36:42.22ID:LK1jtOCB>Range型からRange型への代入よりRange型からVariant型への代入の方が早い
へー、そうなんだ
Variantは遅いって固定観念があったんで試したこと無いから知らんかった
勉強になったよ、有難う
ちなみに、「早い」じゃなくて「速い」だよね
あと、あなた個人にいちゃもんつけてる積もりも無いんだよね
単純にコードの動作やなんかに疑問があっただけだから
人格攻撃とかではないことは分かってほしい
0287デフォルトの名無しさん
2015/10/10(土) 10:47:25.91ID:bWA1pvcm多分、人格どうのではなくて
「ウダウダ抜かすならテメーが書けよ糞が」
って言いたかったんじゃないかな
0288デフォルトの名無しさん
2015/10/10(土) 11:07:48.09ID:LK1jtOCBだからさ、そういうのが理解できないんだよ
コード自体大枠で問題ないから部分的に気になるところを指摘しただけで
お前が書けっていわれてもそんなに違ったもんにはならないよ
仮に書いてもこんな感じ
Dim L As String
Dim i As Long
Dim c As Range
Dim x As Range
With Worksheets("Sheet2")
Set c = Range(.Cells(1, 1), .Cells(1, 13))
End With
ReDim L(12)
i = 0
For Each x In c
L(i) = x
i = i + 1
Next x
ListBox1.List = L
指摘以外で変えたのは i に初期値を入れてるのと、Next に添え字をつけたことぐらいかな
(あくまで個人的好みの問題なんであえて指摘では書かなかった)
あと、x をRangeで宣言してるのはあの時点ではVariantよりも速いと思っていたから
あるいは要素数決まってるんだしFor Next使うってのも有りかも知んない
0289デフォルトの名無しさん
2015/10/10(土) 11:10:24.79ID:LK1jtOCBあ、
Dim L() As String
だった
Variantならカッコ不要だけど、ほかはカッコつけて宣言しとかないと駄目だね
0290デフォルトの名無しさん
2015/10/10(土) 11:40:09.15ID:PLSIx7MG・知ったかぶるだけでコード書けないヤツが排除できる。
・余計な事を喋らなくて済むので好みの違いで水掛け論にならない。
・重複しても全部出した方が初心者でも比較しやすい。
・他人に改訂を強制出来る権利なんてないんだから改訂が必要だと思うなら自分ですべき。
理由としてはこんなもんじゃないかな。他人のコードに口を出すなら全部自分の流儀で1から書けよ、と。
>>277
Listbox1.List = Worksheets("Sheet2").Range("A1:A13").Value
という方法があった事を忘れていた。
0291デフォルトの名無しさん
2015/10/10(土) 12:39:23.58ID:hKmSBUx+俺もリアルで人を怒らせてしまった経験あるぜ
やっぱり上司やレビュー会等、己がレビューを期待されている立場の時にやるべきだぜ
人のコードを見ると脊椎反射でレビューしてしまう癖のある人は気をつけようぜ
ところで、>>277の現象説明については、
Addressプロパティがシート名を含まないセル座標を返してくる仕様のため
その時点のActiveシートのセルが参照されてしまうってことでいいのかな
んー、過去にAddressプロパティを使って組んだシステムがあった気がする
恐いから週明けに確認しとこう
横からだけど参考になった
0292デフォルトの名無しさん
2015/10/10(土) 13:27:44.59ID:LK1jtOCBここはそういうことするスレだと思ってる
ただ、指摘内容は個人的信条に掛かる部分は避けるけれど
変数の型宣言とか、ループ内で不要な処理は出来るだけ外に出すとかは
割合普遍的な内容だよね?
仮に俺がそれやってて誰かに言われても全然気にならないと言うか、
むしろ感謝するんで、まるで悪い事とは思ってない
多分、怒る人ってのは自分自身に対するプライドが無い人なんだと思う
もちろん、こんなのネットだから気軽に言えるんであって
リアルでそんな人に出くわしたら
係わり合いになるのを極力避けるだろうけどさ
0293デフォルトの名無しさん
2015/10/10(土) 18:34:58.23ID:BWs8hoM+VBA自体が遅いからVariantでも相対的に速く見えるんだよね
rangeオブジェクト直接使うより一旦variantに代入して配列として処理した方が速いし
ただフィルタとかの組み込みAPIはめちゃ速いから下手にforで回したりせず積極的に使って行きたい
0294デフォルトの名無しさん
2015/10/10(土) 18:48:19.64ID:e9OvRw0Mここは質問スレなんだけど
そういう基本的な事すら勘違いしてる人程、頼まれもしないのに他人に指摘をしたがる。
しかも勘違いしやすい人だから指摘の内容も間違っていたり偏っていたりする。
やはり、頼まれもしないのに自分勝手な指摘などするべきではないし
された方も、それを鵜呑みにすべきではない。
0295デフォルトの名無しさん
2015/10/10(土) 19:55:36.82ID:LK1jtOCBだからさ、別に>>280に書かれた「コード」について思うところを述べたのであって
>>280さん「個人」に対して指摘したわけじゃないのよ
言ってみれば俺のレスだって>>277さんやほかの人たち宛といってもいい
それを勘違いされちゃうとそれこそ基本的なこのスレの趣旨から外れちゃうと思うんだよね
指摘の内容が間違っているかどうかはこの際関係ないというか、
たとえケアレスミスであったにせよ>>280のコードも間違いであったわけで
そんなこと言い出したら誰もここに書き込めないよ
読んで間違ってると思ったら誰でも自由に書き込めば良いだけじゃん
所詮は2chの書き込みなわけで、それをただ鵜呑みにするなんて真似は
誰が書いたもんだろうとすべきではないのも同じことだしね
0296デフォルトの名無しさん
2015/10/10(土) 20:15:44.13ID:PLSIx7MG指摘する代わりに訂正したコードをレスすれば問題ないだろ。
コードは鵜呑みにしても正しいかどうかは結果が語ってくれるし。
0297デフォルトの名無しさん
2015/10/10(土) 20:21:28.17ID:S77+iWrc-book1-
GoTo endbook2
↓
-book2-
endbook2:
0298デフォルトの名無しさん
2015/10/10(土) 20:27:19.33ID:PLSIx7MGプロシージャ間でのGotoは出来ないはず。
0299デフォルトの名無しさん
2015/10/10(土) 20:28:45.42ID:e9OvRw0M> そんなこと言い出したら誰もここに書き込めないよ
> 読んで間違ってると思ったら誰でも自由に書き込めば良いだけじゃん
良くはないぞ。誰でも自由に書込めるのはその通りだが
スレにはスレの主旨というものがある。
特にここは質問スレだから、質問者は自分に対するレスを鵜呑みにしやすし
常駐してる訳ではないから、たとえその指摘が間違いだった事が分かっても
質問者はその経緯を見ていない事が多い。
しかも、質問の本筋と関係ない指摘によって質問者を余計に混乱させたり
スレが荒れる原因にもなる。今もそういう状態だと言っていいだろう。
結論としてはやはり、質問と関係ない指摘はすべきではない。
0300デフォルトの名無しさん
2015/10/10(土) 21:29:45.80ID:LK1jtOCBそこはまぁ、コード書くほどのことかどうかって話だよね
実際これまでもコード書かずにグダグダ言うだけの人はいたから
あなたの主張も分からんではないし、
だからこそおれも一応>>288にコード書いたんだけど
あれって結局書くほどのことも無いもんだったでしょ?
あの程度の違いだったら別に書く必要ないと思うわけですよ
それでもどうしてもコードだけしか認めないってのは
ちょっと狭量すぎるというか
絶対にコードは書かない人ってたちと逆の意味でやっぱり問題あると思うな
>>299
質問スレの主旨って質問者に対して直接安価つけた回答以外は
回答として認めないわけ?
俺は質問者に対してだけじゃなく、
それを傍から見てるほかの人たちに対するものでも別に問題ないし
そちらこそがむしろ本筋だとすら思ってる
実際、俺だってこのスレで自分では質問してなくても
いろいろ参考になる意見を読ませてもらって感謝してるもの
0301277
2015/10/10(土) 21:43:42.05ID:uc7CQwkxAddressプロパティはシート名を含まないセル座標を返す仕様なんですね。
Range.Address プロパティのリファレンスを見ただけではそこまで気付けませんでした。
まずは、以下の方法で試してみようと思いますが処理速度を考慮した
様々な記述方法をご紹介頂いたので今後の参考にしたいと思います。
(速いに越したこと無いですからね)
・Listbox1.List = Worksheets("Sheet2").Range("A1:A13").Value
・.ListBox1.AddItem.Cells(i,0) = Objsheet.Cells(i,1)
・objsheet.Range("a1:a13").Address(1,1,1,1)
・RowSource = "Sheet2!A1:A13"
ご回答下さった皆さん、本当に有難うございましたm(__)m
0302デフォルトの名無しさん
2015/10/10(土) 22:01:39.36ID:e9OvRw0Mなるほど、お前はこのスレの本筋は
質問自体ではなく、常駐してる人同士の情報交換にある
と思っている訳だな。
ところで、お前が問題があると思っている
絶対にコードは書かないって人たち
も同じように、安易にコードを出して結論だけを示すのではなく
質問者に理屈を理解してもらう事がこのスレの本筋だと思っているのだろうな。
お前と同じだ。
どちらもそれなりに自分の信条はあるのだろうが
決してそれが唯一解ではない。
ただし
絶対にコードを出す事を厭う事
質問と関係ない指摘をする事
どちらも同じように、スレが荒れる原因になってる事も理解してくれ。
0303デフォルトの名無しさん
2015/10/10(土) 22:05:31.62ID:LK1jtOCB悪気は無いんですが結果的にスレを読みにくくしちゃってごめんなさいね
ただ、処理速度もさることながら
コード内でリスト内容に修正を加える必要が出た場合など、
後々の使い勝手も考慮するのがより望ましいかもしれません
その点で言うと、RowSourceでは後からの変更がやりにくいので
ListやAddItemを用いるほうが柔軟に対応しやすいようですよ
というようなことがこの辺に書いてありました
http://officetanaka.net/excel/vba/tips/tips139.htm
ご参考まで
0304デフォルトの名無しさん
2015/10/10(土) 22:10:56.42ID:LK1jtOCB>決してそれが唯一解ではない。
そう、だから俺はコードを書かない人も排斥しないし、
スレチだ何だといって質問者を追い返す人たちに対してですら
別スレに行けばと提案はするけれど拒絶はしない
実のところ俺はこのスレの>>1なんだけど
前スレの>>1にあった束縛云々という文言を抜いたのは
そういう思いも込めてのことなんだよね
0305デフォルトの名無しさん
2015/10/10(土) 22:40:02.38ID:PLSIx7MGコピペして動くコードが貼られていれば便利だろ。
だからどんだけ些細な修正であれコードは貼ってくれ。
その上で問題の指摘なりなんなりごちゃごちゃ言うのは俺は構わない。
0306デフォルトの名無しさん
2015/10/10(土) 22:47:28.14ID:LK1jtOCBいや、その辺のさじ加減は書き手側に任せようよ
>>288も質問者やその他の人達に対して必要だとは思わないけど
>>287氏(に代表される「コード書かない人を許さない人達」)に対しては
必要な事だと思ったから書いたまでのこと
これからも必要があると判断すれば書くしそうじゃなきゃ書かない
0307デフォルトの名無しさん
2015/10/10(土) 23:22:07.02ID:PLSIx7MG0308デフォルトの名無しさん
2015/10/10(土) 23:34:41.84ID:LK1jtOCBだからさぁ、そういうのって結局別スレの人達と同類じゃん
自分と異なる考え方だからといって
頭ごなしに拒絶するのは極力避けるべきだと思うよ
0309デフォルトの名無しさん
2015/10/11(日) 06:49:55.78ID:v4cWO+Xbその後、操作者がブックBを閉じたことを検出して
ブックAの特定のプロシージャを実行したいのだが、どうすればよいか
他ブックが閉じられたというイベントは存在しないようなので困っている
0310デフォルトの名無しさん
2015/10/11(日) 07:01:13.52ID:/glPH0MbブックBをユーザーに操作させないかのどっちかくらいしかないんじゃないか。
0311デフォルトの名無しさん
2015/10/11(日) 07:17:12.35ID:dc8fNJEd0312デフォルトの名無しさん
2015/10/11(日) 19:27:33.17ID:fLjk4aVMやりたい事が
他ブックの BeforeCloseイベント処理 であるなら可能
一応サンプル
★AppSetプロシージャを一度実行してやる必要がある★
[ThisWorkbookモジュール]へ
Option Explicit
Private WithEvents APP As Application
Private Sub APP_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
MsgBox Wb.Name & "がCLOSE"
End Sub
Sub AppSet()
Set APP = Application
End Sub
0313デフォルトの名無しさん
2015/10/11(日) 20:49:24.97ID:K+nxBSBIWorkbooks.Openは開いたブックへの参照を返すから、WithEvents付き変数で受ければそれでイベントハンドリングできる
Dim WithEvents b As Workbook
Sub 開く処理()
Set b = Workbooks.Open("c:\book1.xlsx")
End Sub
Private Sub b_BeforeClose(Cancel As Boolean)
If MsgBox("close?", vbYesNo) <> vbYes Then
Cancel = True
End If
End Sub
0314309
2015/10/11(日) 20:56:35.89ID:v4cWO+Xb手動で保存されたブックBのデータを読み込んで
自動処理を走らせるので、BeforeCloseイベントではダメなんだ
>>311のやり方を検討してみる
0315デフォルトの名無しさん
2015/10/12(月) 22:27:56.55ID:Ur21F95JブックBを閉じたことを検出するボタンを作ったほうがシンプルだと
思うのだが
0316デフォルトの名無しさん
2015/10/13(火) 03:20:04.77ID:BftcgOPm0317デフォルトの名無しさん
2015/10/13(火) 10:16:15.75ID:v0mnZW8d両方つけときゃいいでないの>w
0318デフォルトの名無しさん
2015/10/13(火) 10:27:59.85ID:jBFoqp2r> 質問と関係ない指摘をする事
> どちらも同じように、スレが荒れる原因になってる事も理解してくれ。
指摘を受けた人が暴れなければすむ話なんだけどね。
一方、指摘そのものは、受けた人のみならず第三者にも利益になることが多々ある。
なので、今後もみんなどんどん指摘して欲しい。
0319デフォルトの名無しさん
2015/10/13(火) 10:29:37.14ID:jBFoqp2r> コピペして動くコードが貼られていれば便利だろ。
> だからどんだけ些細な修正であれコードは貼ってくれ。
受け取る側がそれを強制しちゃうの?
問題解決になるキモがわかる断片的なコードで十分な場合も多いでしょ。
0320デフォルトの名無しさん
2015/10/13(火) 14:59:16.74ID:v0mnZW8dなるほど、318はどんどん指摘してほしいそうなので
みんなよろしくな!
0321デフォルトの名無しさん
2015/10/13(火) 15:51:17.66ID:jBFoqp2r0322デフォルトの名無しさん
2015/10/13(火) 17:22:52.96ID:vdpuTcbV自分の思い通りにするのは無理と早く悟ってくれないかなあ
0323デフォルトの名無しさん
2015/10/13(火) 20:10:10.75ID:6nIGFdyo0324デフォルトの名無しさん
2015/10/14(水) 10:09:25.38ID:H3NHgayM自分のコード: >>280
のミスを指摘された: >>281
事に文句を言った(人のコードにいちゃもんつけるな): >>285=>>280
というのが事の発端じゃないの?
0325デフォルトの名無しさん
2015/10/14(水) 15:50:25.41ID:AS+yqKLJ0326デフォルトの名無しさん
2015/10/14(水) 16:51:03.01ID:btG23wVT絶対条件ではないが、可能性はゼロではない
とくにシートにアクセスして書き換えや再計算が発生すると規模に応じた時間が掛かる場合
0327デフォルトの名無しさん
2015/10/14(水) 18:26:49.84ID:AS+yqKLJただセルにデータが増えただけではマクロに影響はないですか?
0328デフォルトの名無しさん
2015/10/14(水) 18:31:11.58ID:H3NHgayM多分影響ないけど、心配なら実測したら?
0329デフォルトの名無しさん
2015/10/14(水) 20:32:26.17ID:KtGF3f0Iめちゃくちゃ複雑な関数が1000*1000セルにびっしり詰まっててネックになってるかもしれないし、
マクロがシート上の情報によって処理時間を左右される類いのものかもしれないし。
0330デフォルトの名無しさん
2015/10/14(水) 20:36:33.73ID:AS+yqKLJ思ったのですが違うみたいですね。どうもありがとうございました。
0331デフォルトの名無しさん
2015/10/14(水) 20:46:42.90ID:KAxvZKuPそりゃ処理するデータ量増えたら遅くなるのはあたりまえだろ w
普通に考えてマクロの処理は変わらない前提の質問だと思うぞ
0332デフォルトの名無しさん
2015/10/15(木) 12:58:50.64ID:BCBs43Sq>>331
Excelの作りを知っているわけではないから
マクロに影響がどう出るかはわからないよ。
データの量によってどう影響するかは、
どれくらいのデータ量を想定しているか325が考えて試すしかないよ。
0333デフォルトの名無しさん
2015/10/15(木) 13:45:15.66ID:mYfmOhz6お前はもうこのスレでレスするな
迷惑
0334デフォルトの名無しさん
2015/10/15(木) 14:14:38.75ID:vaiTvozu>>332はわりとまともな事言ってると思うけど?
そうやって貴方のように個人的主観で仕切ろうとする人のほうが
どっちかってーと迷惑に感じる
0335デフォルトの名無しさん
2015/10/15(木) 14:28:16.56ID:aU04CjvLA列のセルに貼られた画像(1セルに1画像)の名前を
B列に書き出すには、どのようにするのが宜しいでしょうか?
かなりの行があります・・・
0336デフォルトの名無しさん
2015/10/15(木) 15:00:20.15ID:VWNdFEFl0337デフォルトの名無しさん
2015/10/15(木) 15:01:14.19ID:mYfmOhz6>>332
> Excelの作りを知っているわけではないから
> マクロに影響がどう出るかはわからないよ。
お前が知らない、わからないなんて知ったこっちゃない
いちいち報告するな
> データの量によってどう影響するかは、
> どれくらいのデータ量を想定しているか325が考えて試すしかないよ。
何人も同じ事言ってる
スレ読んでからレスしろ
って説明しなきゃわからんのか
0338デフォルトの名無しさん
2015/10/15(木) 16:23:42.66ID:vaiTvozu説明が間違ってるので分かり様が無い
まず
> Excelの作りを知っているわけではないから
> マクロに影響がどう出るかはわからないよ。
に関しては>>332個人が分る分らないではなく
本人 (または現物を見ている人間)以外には分らない
と言う一般的な意味だろうから
お前が云々という批判自体が的外れ
次に
>何人も同じ事言ってる
>スレ読んでからレスしろ
については
もしも複数人が同じ事を言ってはいけないのならば
二人目以降は全員同様の批判を受けねばならない
ちなみに、>>325自身に測定せよとアドバイスしてるのは
俺のみる限り>>328しか居ないように見える
つまり、何人も は言っていない
そしてその内容も若干違っているので
>>332が批判されるほどの理由とは思えない
そのうえで、それらの問題点を抜きにしたところで
君自身が他者の書き込みについて排除できる根拠にはなりえない
0339デフォルトの名無しさん
2015/10/15(木) 16:35:33.53ID:BCBs43Sqすまないねー迷惑だったかw
今後も自由に書きこみさせてもらうよー
0340デフォルトの名無しさん
2015/10/15(木) 16:37:13.51ID:mYfmOhz6> > Excelの作りを知っているわけではないから
> > マクロに影響がどう出るかはわからないよ。
>
> に関しては>>332個人が分る分らないではなく
> 本人 (または現物を見ている人間)以外には分らない
> と言う一般的な意味だろうから
> お前が云々という批判自体が的外れ
は?何言ってんの?
Excelの作りを知っている奴もいるかもしれないし、マクロに影響が出るかわかってる奴もいるかもしれないだろ
なんで「一般論」になるのか理解不能
> つまり、何人も は言っていない
何人もが言ってるのは
> データの量によってどう影響するかは
の方だ。つまりそれもわからんって言ってるに過ぎない
> 君自身が他者の書き込みについて排除できる根拠にはなりえない
自己矛盾もはなはだしいね
だったら俺に絡むな
0341デフォルトの名無しさん
2015/10/15(木) 16:48:19.96ID:BCBs43Sq331は質問の趣旨に答え切れてない気もするけどね。
聞かれているのは、
ブックの容量とマクロの実行速度に関する相関関係だし・・・。
0342デフォルトの名無しさん
2015/10/15(木) 16:52:32.40ID:mYfmOhz6まあ質問そのものが曖昧だったしな
俺は「同じマクロで同じ計算量の場合に、それ以外の要素でブックが肥大化したときに
そのマクロの実行時間に影響を及ぼすのか」という疑問なんじゃないかと思ったが
まあどっちにしても、気になるなら実測しろで終わりだな
0343デフォルトの名無しさん
2015/10/15(木) 17:23:30.43ID:vaiTvozu> 君自身が他者の書き込みについて排除できる根拠にはなりえない
自己矛盾もはなはだしいね
だったら俺に絡むな
俺は排除していないよ
自分にとって参考にならない意見は書き込むなと主張する人と
その人に批判された人ならば
どちらかと言えば前者(つまり貴方)の方が迷惑だ
と評しただけで
だから書き込むなと言った覚えは無い
0344デフォルトの名無しさん
2015/10/15(木) 17:29:09.66ID:mYfmOhz6「書き込むな」とは書いてないから俺を排除しようとしてるわけではないって言いたいのか
おめでてーな
0345デフォルトの名無しさん
2015/10/15(木) 17:43:45.52ID:vaiTvozuおめでてーかどうかはともかく
書いてない以上、そんなことを言われてもどうにもなんない
勝手に深読みしといて相手のせいにするってそれこそおめでてー人だ
0346デフォルトの名無しさん
2015/10/15(木) 17:48:12.67ID:mYfmOhz6お前、現実世界で誰かにナチュラルにハラスメントとかしてるんじゃねーの?
気をつけろよ
0347デフォルトの名無しさん
2015/10/15(木) 17:51:49.74ID:vaiTvozu自己矛盾してますねw
0348デフォルトの名無しさん
2015/10/15(木) 17:53:36.22ID:BCBs43SqExcelのバージョンとかも書かないと無理よ。
俺の持っている2013では画像の名前は取れなかった。
以前ファイルパス取る方法とか質問あったけど、取れるって回答は無かったよ
古いVerでは代替テキストにはいっているとか書かれていたので参考にどうぞ。
0349デフォルトの名無しさん
2015/10/15(木) 17:54:04.36ID:mYfmOhz6何の自己矛盾もないが
一方、
俺はお前が排除しようとしていると感じている
お前は排除してないと言う
これ、ハラスメントの構図
0350デフォルトの名無しさん
2015/10/15(木) 17:55:53.84ID:mYfmOhz6意識せずに、だ
0351デフォルトの名無しさん
2015/10/15(木) 17:58:56.03ID:BCBs43Sqさらっとひどいこと書きますねw
明確な意志をもってゴミレスをdisりましたかw
悪意あるんですね!
0352デフォルトの名無しさん
2015/10/15(木) 18:01:58.99ID:vaiTvozu明確な意思の下であれば
御自身のハラスメント行為自体にはなんら痛痒を感じないのであれば
お気の毒ですが何も言いようが無いですね
おそらく価値観が根底から違っていようと思われます
0353デフォルトの名無しさん
2015/10/15(木) 18:09:46.58ID:mYfmOhz6自分の価値観にあわない奴は悪ですか
おめでてーな
0354デフォルトの名無しさん
2015/10/15(木) 18:17:08.26ID:vaiTvozu>明確な意思の下であれば自身のハラスメント行為に痛痒を感じない
問題はこの部分ですよ?
これが私個人の独自な価値観かどうか、貴方は判断できませんか?
まぁ、出来ないからこんな事やってるんでしょうけれど
貴方個人がどう思うかよりは我々のやり取りが第三者から見てどう思われるかを
客観的にご覧になることをオススメします
もちろん、その点では私の方も
かなりうざがられているであろう事は確かですけどw
0355デフォルトの名無しさん
2015/10/15(木) 18:26:10.01ID:mYfmOhz6>>333のレスすることになんの痛痒も感じてないよ?
それが何か?
0356デフォルトの名無しさん
2015/10/15(木) 18:29:10.14ID:vaiTvozu>それが何か?
ですから、それなら何も言いようが無いですよ
客観視してその程度なら本当にお気の毒ですけれど
私がどう思おうが、あるいは他のスレ住人がどう感じようが
貴方の気にする事ではないので気にしないでください
0357デフォルトの名無しさん
2015/10/15(木) 18:31:13.32ID:mYfmOhz6あってないんじゃないの?
0358デフォルトの名無しさん
2015/10/15(木) 18:32:50.41ID:vaiTvozu2chあってないんじゃないですか?
0359デフォルトの名無しさん
2015/10/15(木) 18:41:27.86ID:BCBs43Sq>Excelの作りを知っている奴もいるかもしれないし、マクロに影響が出るかわかってる奴もいるかもしれないだろ
でもさー、これって「無い」よね?
0360デフォルトの名無しさん
2015/10/15(木) 19:54:11.73ID:9cYvWnzzいろいろな行を選択するたびにそのテキストボックス内の値も自動で変わるようにしたいです。
0361デフォルトの名無しさん
2015/10/15(木) 20:03:18.88ID:tI6xpC1EPrivate Sub ListBox1_Click()
With Me.ListBox1
If .ListIndex = -1 Then Exit Sub
Me.TextBox1.Value = .Value
End With
End Sub
0362デフォルトの名無しさん
2015/10/15(木) 20:04:30.41ID:BCBs43SqMe.ListBox1.AddItem "あ"
Me.ListBox1.AddItem "い"
Me.ListBox1.AddItem "う"
Me.ListBox1.Selected(0) = True
End Sub
Private Sub ListBox1_Change()
Me.TextBox1.Value = Me.ListBox1.Value
End Sub
あげる!
■ このスレッドは過去ログ倉庫に格納されています