1 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 22:36:18.78 ] 01 pc11.2ch.net/test/read.cgi/tech/1054356121/ 02 pc11.2ch.net/test/read.cgi/tech/1168308855/ 03 pc11.2ch.net/test/read.cgi/tech/1180192018/ 04 pc11.2ch.net/test/read.cgi/tech/1189814602/ 05 pc11.2ch.net/test/read.cgi/tech/1197448064/ 06 pc11.2ch.net/test/read.cgi/tech/1205231499/ 07 pc11.2ch.net/test/read.cgi/tech/1212587819/ 08 pc11.2ch.net/test/read.cgi/tech/1219673793/ 09 pc11.2ch.net/test/read.cgi/tech/1228372971/ 10 pc12.2ch.net/test/read.cgi/tech/1235332603/ 11 pc12.2ch.net/test/read.cgi/tech/1241885130/ 12 pc12.2ch.net/test/read.cgi/tech/1247566074/ 13 pc12.2ch.net/test/read.cgi/tech/1254281104/ 14 pc12.2ch.net/test/read.cgi/tech/1262748898/ 15 pc12.2ch.net/test/read.cgi/tech/1271261239/ 16 hibari.2ch.net/test/read.cgi/tech/1280045912/ 17 hibari.2ch.net/test/read.cgi/tech/1289182437/ 18 hibari.2ch.net/test/read.cgi/tech/1298240666/ 19 hibari.2ch.net/test/read.cgi/tech/1305754555/ 20 hibari.2ch.net/test/read.cgi/tech/1312435844/ 前スレ: Excel VBA 質問スレ Part21 hibari.2ch.net/test/read.cgi/tech/1316931607/
477 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 12:14:23.53 ] >>476 何か問題でも?
478 名前:デフォルトの名無しさん [2011/12/29(木) 12:21:59.85 ] もそっとくわしくおねがいしまふ
479 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 12:28:39.81 ] .Delete
480 名前:デフォルトの名無しさん [2011/12/29(木) 12:32:12.17 ] >>47 さんへでふ。 もそっとくわしくおねがいしまふ
481 名前:デフォルトの名無しさん [2011/12/29(木) 12:32:46.14 ] >>475 さんへです
482 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 12:40:41.34 ] >>481 .Delete
483 名前:デフォルトの名無しさん [2011/12/29(木) 14:30:45.27 ] >>466 本当にすみません。マクロを作るときは マクロを選択して、名前を作って作成というボタンを押すんですよね? それに466さんが張り付けてくれましたコードをそのまま入れましたら できませんでした。。。 すみません。よろしくお願いします。
484 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:49:57.18 ] >>483 1.シートの見出しタブを右クリックしコードの表示を選択 2.466のコードをコピペ 3.とりあえず動作確認 4.イベントマクロで検索 5.コードの意味を理解 6.そのままじゃ使い勝手悪いと思うので修正
485 名前:デフォルトの名無しさん [2011/12/29(木) 16:48:54.26 ] Private Sub CommandButton1_Click() Dim a, b, c As Single c = 0 For b = 1 To 5 For a = 1 To 5 c = c + 3 Sheet.Cells(a, b).Value = c Next Next d = 1 For b = 1 To 5 For a = 1 To 5 d = d + 1 Sheet.Cells(a + 10, b + 10).Value = d Next Next End Sub 非常に簡単なんですが、シートに書き込むことができません。どうすれば 書き込めますか? フォームを作って、クリックボタンを一つ作っています。
486 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:30:08.52 ] >>485 僕も、シートに書き込むことができません。 どうすれば書き込めますか? Private Sub CommandButton1_Click() Dim a As Integer, b As Integer, c As Integer c = 0 a = 1 b = 1 Sheets("Sheet1").Cell(a, b).Value = c End Sub
487 名前:デフォルトの名無しさん [2011/12/29(木) 18:43:31.84 ] ありがとうございます。 Private Sub CommandButton1_Click() Dim a, b, c, d As Single c = 0 d = 1 For b = 1 To 5 For a = 1 To 5 c = c + 3 Sheets("Sheet1").Cell(a, b).Value = c d = d + 1 Sheets("Sheet1").Cell(a + 10, b + 10).Value = d Next Next End Sub 上記のとおりにやりましたが、それでも、 Sheets("Sheet1").Cell(a, b).Value = c の部分にエラーが出てしまいます;
488 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:24:38.06 ] >>483 標準モジュールに作ってない? WorkSheetの関数として実装するんだよ?
489 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:25:13.73 ] >>487 いや、だから僕も書き込めないんだって… × Sheet.Cells(a, b).Value = c × Sheets("Sheet1").Cell(a, b).Value = c でも↓はOKなのはなぜ? Private Sub CommandButton1_Click() Dim c As Integer c = 0 Sheets("Sheet1").Cells(1, 1).Value = c End Sub
490 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:13:23.66 ] エラーメッセージを読むことを覚えよう
491 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:19:06.38 ] Cell(a, b).Value = c Cell じゃなくて Cells だろ?
492 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:25:51.15 ] エラーメッセージなんて読んでも意味わかんねーし つべこべ言わずに答えを教えろやカス お前らそれくらいしか取り柄がないんだろ?
493 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:40:38.71 ] >>492 はにせものです
494 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:44:04.22 ] (でも本音です)
495 名前:デフォルトの名無しさん [2011/12/29(木) 21:04:15.31 ] 行列の掛け算同士って for構文を使うのだと思いますがどうすればよいのでしょうか? 試行錯誤するのですが非常に複雑です。。。
496 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 21:06:45.45 ] >>492 > エラーメッセージなんて読んでも意味わかんねーし エラー箇所でF1押してヘルプを読むのは役に立つと思うけどな
497 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 21:14:23.88 ] >>495 何をやりたいのかわからんが Worksheetfunction.MMult じゃ駄目なのか
498 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:15:20.75 ] Dim i As Long, j As Long Dim V(1 To 2, 1 To 2), VV(1 To 2, 1 To 2) Dim VVV For i = 1 To 2 For j = 1 To 2 V(i, j) = i VV(i, j) = j Next j Next i VVV = WorksheetFunction.MMult(V, VV) Debug.Print WorksheetFunction.Index(VVV, 1, 2)
499 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:16:42.15 ] >>495 4行4列くらいまでならべた書きの方が速い
500 名前:デフォルトの名無しさん [2011/12/30(金) 06:45:51.03 ] >>499 4行4列ではなく、要素によって変わってくるため、 恐らく20行前後になってくると思います。。。
501 名前:デフォルトの名無しさん [2011/12/30(金) 08:01:37.33 ] >>498 すみません。ありがとうございます。 worksheetfunctionではなく、他の方法でできますか? Function MProd(X() As Double, Y() As Double) As Double() '行列の積を計算する関数 '2009/07/10 山田宏 Dim m1 As Integer, n1 As Integer, n2 As Integer Dim i As Integer, j As Integer, h As Integer Dim tmp As Double, Z() As Double m1 = UBound(X, 1): n1 = UBound(X, 2): n2 = UBound(Y, 2) ReDim Z(1 To m1, 1 To n2) For i = 1 To m1 For j = 1 To n2 tmp = 0 For h = 1 To n1 tmp = tmp + X(i, h) * Y(h, j) Next h Z(i, j) = tmp Next j Next i MProd = Z End Function 調べたらこれが出てきましたがまったくわかりません。。。
502 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 08:39:20.75 ] >>501 worksheetfunctionで結果がでるならそれでいいじゃない なんか問題あるの? もしも 万が一 宿題なら自分でやろうぜ あと >>2 ★5 な
503 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 08:42:37.47 ] 行列の積の計算手順と、最低限度のプログラミングが理解できていれば、 悩むことではないと思うのだが。
504 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 08:57:12.87 ] >>503 ttp://blogs.itmedia.co.jp/magic/2011/12/6886-2d5b.html
505 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 09:39:02.37 ] >>501 わからないならエクセルにまかせりゃいいじゃん ↓ならわかるだろ Function MProd2(X() , Y() ) Dim Z Z = WorksheetFunction.MMult(X, Y) MProd2 = Z End Function
506 名前:デフォルトの名無しさん [2011/12/30(金) 09:41:47.52 ] すべてのシートに同じ処理をするマクロで For Eachの入れ子で組んだら上手くいきません For Each sh In Worksheets Columns("AA:AR").Select For Each c In Selection Case "1" c.Interior.ColorIndex = 7 Select Case c.Value End Select Next c Next sh
507 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 09:46:42.32 ] それはたいへんですね。ごしゅーしょーさまです。
508 名前:デフォルトの名無しさん [2011/12/30(金) 09:49:00.68 ] >>504 そのリンク先が>>503 と何の関係が有るのかは分からないけど、 今の教育現場が酷いことになってるのは分かった。
509 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 09:55:32.45 ] >>506 構文でたらめじゃねーか でも並べかえれば動きそうな気がするし さて、おちょくられているのかな
510 名前:デフォルトの名無しさん [2011/12/30(金) 10:03:24.56 ] >>506 sh.activate追加で
511 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 10:20:57.78 ] >>504 単位を省略しなければどちらも正解 ○ 6本/人 × 8人=48本 ○ 8人 × 6本/人=48本 ? 6本 × 8人=48? ? 8人 × 6本=48?
512 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 10:30:47.97 ] きっとその先生はCPU のbit数を意識して、演算結果が飽和しないように式を組む癖を叩き込みたいんだと思いますん。
513 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 10:50:54.62 ] ふつーCPUの演算では飽和しません
514 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:05:36.54 ] セル番地を指定するのにrangeとcellsが混在しているとみっともないでしょうか
515 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:26:10.43 ] ユーザーフォームにラベルとテキストボックスを配置しました。 フォントは同じでサイズも同じですが 高さがズレて表示されます。 見た目の高さを揃えるにはどうしたらよいですか。 よろしくお願い申し上げます。
516 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:31:12.49 ] >>514 そもそもcellsはrangeを返すプロパティ これを踏まえてどう思うか
517 名前:デフォルトの名無しさん [2011/12/30(金) 11:39:08.66 ] >>516 偉大な>>514 様は、例えば左上のセルを Cells(1,1)と書くのとRange("A1")と書くことの違いが分かっておられないと思う。 その説明じゃなんのことは分かりやすく伝えてないから、説明になってないと思うぞ。 もう少し分かりやすく説明して差し上げたら?
518 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:39:41.44 ] >>509 この構文のどのへんがだめなんでしょうか よろしかったら教えてください
519 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:51:51.00 ] >>518 条件付き書式でいいんと思うんだがCase "1"とSelect Case c.Valueが逆だろ? Case "1"よりはCase 1だと思うが
520 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:53:14.65 ] それにたった一つの分岐ならSelect Case使うまでもねーな。 Ifで充分。
521 名前:デフォルトの名無しさん [2011/12/30(金) 11:58:18.99 ] >>519 逆と言われて、こうしたりして Select Case c.Value c.Interior.ColorIndex = 7 Case "1" End Select
522 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:02:35.62 ] そうだな。 まぁ色々と並べ替えてやってみんしゃい。 それにしてもAA:ARのすべてのセルを調べるのもなんだかねぇ。 せめてUsdRangeとの共有セルにした方がいいと思うね。
523 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:52:16.18 ] もしかして、Excel2007以降だと104万行全部調べる羽目になるの?
524 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:30:32.28 ] 104万8576行*18列*シート数だね おわりゃしねえ
525 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:30:07.14 ] 3シートでやってみた。たしかにそうだ (^-^*)
526 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:09:50.25 ] 急いでます。 =PRODUCT(A1:B1) =PRODUCT(A2:B2) と同様に一気に計算する方法ってどうやるんですか?
527 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:22:07.30 ] >>526 とりあえず落ち着きんっさい
528 名前:デフォルトの名無しさん [2011/12/30(金) 22:26:13.26 ] Excelだと、スロットゲームとか作れそうだけど、 どこかにサンプルないかな? お勉強にしたい。
529 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:44:33.57 ] ● 2005年5月23日号 file NO.004 イカサマ・スロットマシンを作れ pc.nikkeibp.co.jp/npc/download/excel_taskforce.html
530 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 22:47:37.64 ] テーブルからの検索でなるべく早い方法ってなんでしょうか。データ量によりいろいろ方法あると思いますが。 特に列二つか三つに一致するデータを検索する使い方が多いのでvlookupは普段使ってません。 とりあえず上から順に検索 for i = 2 to .cells(rows.count,1).end(xlup).row if .cells(i,1).value = ID then if .cells(i,2).value = Name then 処理 exit for end if end if next 上のやり方が遅すぎるので配列に代入してから。上のやり方より遥かに早くなったので 現状この方法を多用。 Dim Rng as variant rng = .UsedRange for i = 2 to Ubound(Rng) if Rng(i,1) = ID then if Rng(i,2) = Name then 処理 exit for end if end if next もっと早い方法あれば何かキーワードだけでもヒントお願いします。 上の方法だと5000〜1万件になるとちょっと実用できなさそうなので。 findやVlookupは知ってますが2列で一致するような使い方が出来なくて。
531 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:18:26.87 ] Accessとか使った方がいいんじゃない
532 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:19:05.88 ] 検索した上で何がしたいのかによる
533 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:28:11.74 ] >>530 検索キーの構造が単純なら、キーを結合した上でVLOOKUPするとか。 この場合だと、IDとNameをそれらで絶対に使われない文字を挟んで繋いでやれば 単一キーとして利用できる。
534 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 00:00:19.43 ] WinXP Excel2000で作っていたときは問題なく動作をしていたのですが Win7 Excel2010で実行すると エラー番号1004'Range'メソッドは失敗しました'_Global'オブジェクト とでました 問題の箇所は UserForm2.Show vbModeless ここです コード自体は間違っていないと思うのですが環境の変化によって何が変わりエラーがでたのでしょうか
535 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 00:08:41.33 ] どっかでみたコピペだな
536 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:54:14.77 ] コピペじゃなくて真剣に悩んでます
537 名前:530 mailto:sage [2011/12/31(土) 02:16:34.54 ] ありがとう >>533 ワークシート関数で作業列で結合してそれでVLOOKUP使ってるのを見た事 ありますがそういう事ですね。 >>532 この質問では何がという特定の目的はありませんでした。ほかの検索方法 があれば知りたいなと思って。 >>531 アクセスっぽい事をエクセルでやりたいのです。どの会社行ってもエクセル は必ずあるけどアクセスはあんまり見ないですし。
538 名前:デフォルトの名無しさん [2011/12/31(土) 02:50:44.07 ] ただ検索して知りたいだけなら、VBA使わずに手動でオートフィルタだが。 VBAでオートフィルタって手もあるけど。だからどういうことをやりたいのか聞いた。
539 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 03:33:04.00 ] エクセル97のおんぽろ会社PCで400行×20列くらいのデータ抽出を 数式のコピペだけでやって10秒ほど?で出来てるけどそれより早いなら解からん
540 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 09:24:49.34 ] >>537 AccessなしでもAccessデータベースを扱うことは可能 他にもタダで使えるデータベースはあるから使い途によっては選択肢に入れてもいいかもね でもいろいろ敷居が高いかな
541 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 10:23:56.08 ] >>540 ようするに会社のパソコンで必ず使える物ならいいのでエクセルで無理やり頑張るより無料のデータベース 勉強する方が良いかもしれないですね。
542 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 11:04:55.91 ] 現状の配列方式で5000〜1万件ってそんな時間かかるものなん 条件合致したら、ループ抜けるんだよね?処理は1回だけ
543 名前:デフォルトの名無しさん [2011/12/31(土) 11:57:37.43 ] エクセルの表に対してADO&SQLつかえば?
544 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 11:58:53.89 ] 遅いよ
545 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:00:28.32 ] >>544 うん、わかった
546 名前:530 mailto:sage [2011/12/31(土) 13:48:33.96 ] >>542 ダミーデータ1万行まで入れて一番下に入れた文字を検索してみたら0.015秒でした。 十分早いですね。 検索回数増えないようにロジック考えればこの方法で十分なんですね。 オートフィルタとか使わずに検索を一度に何十回とか繰り返してたのでそもそもそのへん を考え直すべきなんですね。
547 名前:デフォルトの名無しさん [2011/12/31(土) 20:54:03.70 ] 下記はどう使い分けるのが適切でしょうか? vbCR vbLF vbCRLF vbNEWLINE
548 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 21:58:56.52 ] vb.netで質問です trackbar1のvalueからpicturebox1のbackcolorのレッドの濃淡を出したいのですが trackbar1のvalueはinteger(0−255)にしています。 Public Sub TrackBar1_Scrollするとtrackbar1.valueから0の場合picturebox1のバックカラーは一番薄い色に(白か初期の灰色に) 逆に255ならばtrackbar1のバックカラーはどす黒いredにしたいのですが… まず濃淡を出すこと自体可能なのでしょうか。。。 スレ違いと言うことは重々承知しております。vb.netスレが検索してもないもので。。。 お願いします。
549 名前:デフォルトの名無しさん [2011/12/31(土) 22:05:09.51 ] toro.2ch.net/test/read.cgi/tech/1325083428/
550 名前:デフォルトの名無しさん [2012/01/01(日) 02:14:28.71 ] 選択範囲を全て罫線を引くのは下記で出来ますが Selection.Borders.LineStyle = True 例えば 一番上と下のラインを以外の横の罫線を点線にしたい場合って どうすればいいのでしょうか? 一応マクロの記録でやると何十行もの内容が出てる来たので それは避けたいのですが
551 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 03:19:29.13 ] 全部書いてから横罫線だけ上書きするとか Selection.Borders.LineStyle = xlContinuous Selection.Borders(xlInsideHorizontal).LineStyle = xlDash
552 名前:デフォルトの名無しさん [2012/01/02(月) 09:58:08.79 ] あけましておめでとうございます。 行列のことで質問したものです。 再度整理して、再質問します。 octave系のプログラミングソフトでは、行列表示は a=[2 2;5 5] などで表せます。 逆行列は、inv(a), また、転置行列は、a'で表せます。 Excelでは、 1.a=0 とまず、空の成分を置いて、 b=0 for i=1 to 10 for k=1 to 10 b=b+1 a(i,k)=a(i,k)+b next i next k のように置くことは可能でしょうか? つまり、例えばですが、 a(1,1)の部分には1が入り、a(2,2)の部分には2,また上の例には 対応していませんが、a(1,2)には3や4などといった数字が入り…といった感じです。 よろしくお願いします。
553 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 11:23:58.46 ] 馬鹿には無理
554 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 11:27:47.75 ] 試せばわかる for i=1 to 2 for k=1 to 2 debug.print a(i, k) next k next i
555 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 11:35:11.16 ] >>552 整理してそれかい 小学校からやり直せ
556 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 11:40:20.99 ] 2行2列で足し算 掛け算でなかったっけ? For i = 1 To 2 For k = 1 To 2 a(i, k) = 1 b(i, k) = 2 c(i, k) = a(i, k) + b(i, k) Next k Next i
557 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 11:43:00.70 ] iとkなのが気持ち悪いんだが
558 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 14:35:23.95 ] >>552 新しく質問する前に前回の質問にケリ付けとこうよ。 >>502 が聞いてたWorksheetFunctionを避けたい理由とか、 >>501 で紹介していたFunctionの何が童話からないのかとか、 一切説明ないじゃん。 自分が分かればそれで良いってのは虫が良すぎるんじゃないの?
559 名前:デフォルトの名無しさん [2012/01/02(月) 15:05:35.05 ] >>558 大変申し訳ございません。 worksheetfunctionを避けたい理由としましては、excelではなく visual studio(ほとんど同じコードだと思います)でも使いたいので、 応用させたいと思っています。 また、501に関しては、Z() と最初においていますが、 これにより、 z(1,1)=5 , z(1,3)=4 , z(2,1)=3と打つと、 例えばですが、z(1,3)に入っている数字は4ということなんでしょうか?
560 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 15:42:01.97 ] >>559 そういうこと >>501 は、行列の要素を1個ずつ計算しZ(i, j)に格納している
561 名前:558 mailto:sage [2012/01/02(月) 15:51:07.30 ] >>501 のは2つの引数X(),Y()で与えられた2次元配列について行列積を求め、MProd()で返す関数 まず、m1,n1,n2,は行列の大きさを格納するための変数 m1 = Xの行数,n1 = Xの列数 = Yの行数(もし違ってたら行列積の計算ができない),n2 = Yの列数 i,j,h,はFor next のためのカウンターの変数 tmpは各要素の計算結果を一時的に格納する変数 Z()は最終的な計算結果を格納する配列変数 UBound(X,1)はX(a,b)のaの個数の上限を求めるもので UBound(X,2)はX(a,b)のbの個数の上限を求めるもの UBound(Y,2)も同様にY(a,b)のbの上限になる 行列の大きさが分かったので 結果を入れるZ()をRedimでm1行、n2列に再定義して m1,n2,n1,の順にネストしてループをまわす。 一番内側のhのループ内でX()i行目の各列とY()j列目の各行との要素の積を一個ずつtmpに合算していくと、 Z(i,j)の要素が求まるのでZ()に代入 これをその外側の2つのループでi,jを変えながら繰り返すとZ()の全要素について求まる。 最終的にZ()をMProd()に代入して処理完了
562 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 16:15:52.66 ] >>2 ★2 ★3 ★4
563 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 16:21:30.23 ] >>552 > a(1,1)の部分には1が入り、a(2,2)の部分には2,また上の例には > 対応していませんが、a(1,2)には3や4などといった数字が入り…といった感じです。 どうしてそうなると考えたのか?
564 名前:デフォルトの名無しさん [2012/01/02(月) 16:35:00.75 ] >>563 確かに行列積の計算方法そのものはわかってるとすると>>552 が理解できれば>>501 も理解できるのかもね。
565 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 17:49:32.42 ] VBA以外触ったこと無いから分からないのですがクラスとはどういう時に使うものですか?
566 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 18:50:19.08 ] 中二病の発作を起こした時に作ってみるもの。 クラスにするまでも無かったと我に返ってコードを投げ捨てることも多い。
567 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 19:28:21.82 ] XMLHttpRequestを使ってページの差分取得をしようと思ったのですが Set XMLhttp = CreateObject("MSXML2.XMLHTTP") XMLhttp.Open "GET", URL, Flase XMLhttp.SetRequestHeader "If-Modified-Since", LastTime 'LastTimeにLast-Modified格納している XMLhttp.SetRequestHeader "Accept-Language", "ja" XMLhttp.SetRequestHeader "Accept-Encoding", "gzip" XMLhttp.SetRequestHeader "Connection", "close" http.Send これでResponseBodyを見たところ全てのデータが含まれていました 上記のコードは正しくヘッダーがセットされていますか?
568 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 19:29:07.19 ] 最終行のhttp.SendはXMLhttp.Sendの間違いです
569 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 19:53:32.95 ] もはやExcelと何の関係もないな…
570 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 20:11:48.40 ] >>567 スレチ If-Modified-Sinceは差分取得するもんじゃない 指定したLastTime以降更新されてなければ "304 Not Modified"が返る と言う事で ここでは これ以上聞いてもスルーする
571 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 20:38:19.33 ] >>567 の件はぜんぜん分からないからスレチでなくとも俺は答えられないけど、 ちょっと便乗で質問。 ExcelのVBAでWebブラウザ制御するのって自動巡回扱いになるの? この前仕事で某官庁のHPから統計データを引っ張るためにマクロ組んだら 上司にそれは自動巡回だからやっちゃだめって怒られた (某官庁のHPには自動巡回ソフトの使用はご遠慮くださいって書いてあった) IEをCreateObjectしてURLを自動的に生成(対象データの年度の部分を動的に変えるだけ) して 表示されたらExecWBでSelectAll、Copy、して クリップボードから.PasteSpecial でワークシートに貼り付けただけなんだけど、 そういうのも自動巡回ソフトに当たるんだろうか? こんなの手作業をマクロに書き換えただけじゃんねぇ?
572 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 20:48:30.88 ] 手動じゃないなら自動でしょ
573 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 20:53:04.69 ] >>572 いや、そういう意味じゃなくて自動巡回ソフトってサーバーに負担かけるからだめなんでしょ? 手作業でできることをマクロ化したところでサーバーにかかる負担なんて変わらないよねってこと (一応、念のために適当にウェイトかまして速くならないようにはしてた。)
574 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:07:27.85 ] わからんでもないが、それは配慮。 遠慮してくれってんだから、だめでしょ、やっぱり。
575 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:19:46.08 ] 手作業をマクロ化って自動化そのものじゃんねぇ?
576 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:26:20.81 ] ねぇねぇ、思いつきだけど言って良い? 自動ポルノ。
577 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:35:58.88 ] >>573 そう思うのならその某官庁とやらに説明して許可もらえばいいじゃん そうでもしないと上司を納得させられないんじゃないの? こんな所でグダグダ言ってても意味ないよ スレ違いどころの話じゃないし