1 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:05:13.16 ] 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/ 21 hibari.2ch.net/test/read.cgi/tech/1316931607/ 前スレ: Excel VBA 質問スレ Part22 toro.2ch.net/test/read.cgi/tech/1322400978/
376 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 13:19:41.89 ] は? 仕様のヒアリング1時間、コーディング30分、テスト30分だろ
377 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 13:33:33.99 ] どう読んだらも何も本来の文脈からいったら おネエさんの作業時間と対比するには VBAのほうも処理に必要な時間を書くべきだろ。 もちろん、いくらなんでも人力の3倍前後にしか短縮できないってのは ちょっとあり得ない話だから コーディングにかかった時間なのだろうと推測はできるが はっきりと明記されていない以上、 日本語としては前述のような解釈も十分可能だぞ。
378 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 13:42:16.29 ] > 私がVBAで2時間位で完全自動化した これを、作業時間2時間で完全自動化したと読めないのは、日本人じゃ無いか、IQ70以下くらいだと思うぞ。 日本人だしIQも高いというなら、それは単なる誤読、勘違いなんだから騒ぐな。
379 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 13:45:59.83 ] どうでもいい事ではスレのびるのな
380 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 13:56:32.22 ] 日本語っていうのは語順の入れ替えや語句の省略によるあいまい表現に寛容で 柔軟な構造の言語だから省略された部分に何を補完するかでどうにでも取れるよ。 >私がVBAで2時間ぐらいで(作業が終わるように)完全自動化した。 という読み方だって、 その前段で述べられている人力での作業時間と対比をなすことから考えたら自然な解釈なんだよ。 っていうことがわからないなら それこそ日本語を勉強し直した方が良いと思う
381 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 14:12:50.78 ] >>380 余分な単語をそぎ落とすと「私が二時間位で自動化した」になるが、これでもまだ六時間かかる処理を 二時間位で終わらせるような自動化をしたと読むのか? ちょっと、日本人とは思えない解釈だわ
382 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 14:28:14.55 ] >>377 >VBAのほうも処理に必要な時間を書くべきだろ。 はぁ? お前のべき論なんか聞きたくもないよ。
383 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 14:32:11.51 ] 完全自動化されるなら、別に実行に二時間かかってもいいと思うが。 (と、話を変な方向に広げてみる)
384 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 14:48:20.87 ] すでに述べている通り省略の仕方でどうにでもなる話だよ。 自説に都合の良い省略の仕方をされても困る。 作業時間云々のものからそういう省略の仕方ができないってことと、 元の文章がどういう省略の仕方をした結果なのかは別次元の話だからね。 で、俺は単なるべき論で言ってるわけじゃない。 前後の文脈を合わせるという方向で考えたらそうなると言ってるだけで そうでない解釈が間違いだとは言ってない。 むしろその論理を否定されているからそうでない解釈もありだと言ってるだけ、 先に持論を押し付けたのはどちらか、冷静に判断してほしいし、 そういう論法なら日本語能力云々とかIQ がどうとかも一個人の見解にすぎない話で だれも聞きたいと思ってないのは御同様。
385 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 15:02:01.04 ] よっぽど悔しいんだろうなぁ
386 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 15:07:15.34 ] > すでに述べている通り省略の仕方でどうにでもなる話だよ。 そもそも省略なんかしてないし。 100人読んだら、お前以外の99人は作業時間が、と取るわ。
387 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 15:16:34.11 ] 僕の解釈論はそろそろ終わりにしてもらえませんかね。
388 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 15:51:44.33 ] >>386 あくまで個人の感想です
389 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 16:25:51.95 ] こんな普通の文章でも、個人の解釈でどうとでもなるとか言う奴が書いた仕様書見たいわ
390 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 16:30:12.44 ] 自分の読解力のなさをわざわざ指摘してくれる人がいたというのに 逆ギレする馬鹿
391 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 16:42:03.30 ] 往生際悪すぎ
392 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 18:27:11.41 ] >>384 オマエさん、ちょっとズレてるよ
393 名前:デフォルトの名無しさん [2012/02/23(木) 19:02:53.08 ] 傍目で見てたら論拠に基づいて発言してる人と 言葉の勢いだけで無根拠に強気なこと言ってる人の議論なんだが、 無根拠の方はそれに気づいてないってのが哀しいな。
394 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 19:15:35.72 ] スレが伸びてると思ってみてみたら何だこいつら いつぞやのDB馬鹿がまた暴れてんのか?
395 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 19:52:44.07 ] どう解釈するのが普通か、なんて、多人数の意見を集約してみないとはっきりしない ま、俺の主観ならあの文章なら作業時間2時間だな。俺があの文章かいて 実行時間が2時間だととられたなら書き方がわるかったと反省する
396 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 20:18:52.53 ] ここは質問スレ。 >>373 も、難癖をつけようとして失敗した>>374 も、どっちもスレチ。
397 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 20:34:13.57 ] スイマセン、助けてください 職業訓練学校に通ってるんだけど、諸事情で1週間ほど休んで一昨日からまた通い始めたんです、 その間に溜まったプリントを消化してて最後の一枚で訳わかんなくなってしまったんです For〜Nextのネストってのはなんとなく解ったんだけど、どう組み立てていけばいいのかわからなくなって先に進めなくなりました。 imepic.jp/20120223/735690 これなんですが、VBAに慣れた人には簡単すぎるかもしれませんがどなたか助けて下さい
398 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 20:59:33.99 ] >>397 Sub TEST() Dim i as 整数, j as 整数, k as 整数 For i = 1 to ワークシート数 For j = 6 To 12 For k = 2 To 8 With Cells(j, k) If .valueが5000以上 Then .フォント.色=青 ElseIf .valueが2000未満 Then .フォント.色=赤 End If End With Next k Next j Next i End sub
399 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 21:07:02.90 ] >>398 訂正 With worksheets(i).Cells(j, k)
400 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 21:12:10.07 ] >>398-399 ありがとうございます! そうか・・・Nextの終了順番が間違ってたのもあったのか これでナントカ追いつけそうです
401 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 21:57:48.70 ] 今、訓練所でvba教えでるのか。田舎だと、使う場面が少ないが
402 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 23:01:09.21 ] XP-2002環境です。 シートAに、2行ペア組のデータで、5万行まで埋まっています。 Dim strData(15) As String に2行のセルの値を配列に放り込んで、 シートBにパコパコ張り付けるのを全行ループしています。 だけど、必ずシートAのある行数のところで、オーバーフローとなって止まります。 別にその行のデータの型などが、特におかしいわけでは無いです。 (成功したデータをその行に貼り付けてもオーバーフロー) もしかして、VBAで処理する行数の上限等の何か制約があるのでしょうか? 上限があるなら何か他の対策はあるのでしょうか。 それとも何か他の原因が考えられるのでしょうか? よろしくお願いします。
403 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 23:07:53.13 ] >>402 IntegerをLongにしてみたらどうでしょうか
404 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 23:19:15.10 ] >>402 VBAじゃなくてExcel自体の行数の上限が65535行だけどそれは理解してるの? Excel2007で100万行に拡張されたけど
405 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 23:25:17.48 ] >>404 5万行ってことだから問題ないんじゃないの?
406 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 00:06:59.57 ] >>402 5万行×8列を2万5千行×16列にしてるのかな?
407 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 01:04:56.91 ] Range("A1:A3").Offset(0,2) ってやったら、 Range("C1:C3") なオブジェクトが取れると期待してたけど、 Range("C1") の単一のセルなオブジェクトになった。 そう言うもの?何かへんなのか? "A1:A3"は、結合してるセルなのだけど、何か関係ある?
408 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 03:41:06.42 ] >>407 Offsetは左上の単一セルしか見ない 範囲を広げるにはResize
409 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 07:09:13.61 ] >>403 ありがとうございました。intカウンターをLongで解決。 なんで32000行あたりの特定の数字でオーバーフローしちまうのかなぁ
410 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 07:28:41.30 ] >>409 それぞれの型には範囲ってもんがある 基本的なことぐらい知ってれやれよ www.geocities.jp/cbc_vbnet/kisuhen/hensuu.html 変数・定数(基礎編)
411 名前:デフォルトの名無しさん [2012/02/24(金) 08:28:36.17 ] >>407 実際にRange("C1:C3")になるぞ。 そっちのPCは呪われてるのか?
412 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 19:19:10.59 ] >>411 >>407 も >"A1:A3"は、結合してるセルなのだけど、何か関係ある? って書いてるけど、うちの環境で試しても A1:A3が普通のセルならC1:C3を返すけど、 A1:A3を結合してるとC1だけしか返されなかったよ。
413 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:46:56.38 ] >>412 ちょっと気になっていろいろ試してみた ヘルプには >指定された範囲からのオフセットの範囲を表す Range オブジェクトを返します。 とある ここでの指定された範囲ってのは指定したRangeじゃないし、オフセットの範囲ってのもそのRangeの範囲じゃないってことらしい 問題は、結合セルに対してOffsetをとった場合 指定された範囲=結合セルという一つの範囲 オフセット基準=指定範囲の終了地点(右下) だとみなされるようだ A1:A3が一つの結合セルだった場合、Range("A1").OffsetもRange("A2").OffsetもRange("A3").Offsetも同じ動作をする 普通にOffset実装したらそういう動作しそうもないから、 わざわざ結合セルに対するOFFset動作は特別な動作するように実装されてるんじゃないかな ということで、>>407 そう言うものだと思われます だれかこの動作の公式なドキュメントしってる?
414 名前:デフォルトの名無しさん [2012/02/27(月) 00:59:22.80 ] Excelファイルが読み取り専用の場合、入力できなくする方法 Excelファイルを読み取り専用で開いてるのを忘れて、 いざ保存しようとした時に読み取り専用だった事を思い出すって事ありませんか? だったらセルのロックみたいに入力自体できなくすればいいじゃないかと 思ってはみたもののどうすればいいかわかりません。 読み取り専用推奨で保存したファイルを開いて 読み取り専用にするか訊いてきた時に"はい"の場合はセルのロック、 "いいえ"の場合はセルのロックを解除というマクロを組んでAuto_Openで動かしてみましたが、 どうも訊いてくるより先にAuto_Openが実行されているようでうまくいきませんでした。 読み取り専用で開くかどうかもマクロで組めれば解決するのかなと思いますが、やり方がわかりません。 どうにかならないでしょうか?
415 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 01:19:29.12 ] Workbook_Openイベントプロシージャ
416 名前:デフォルトの名無しさん [2012/02/27(月) 07:37:36.89 ] マクロの記述で質問です。 B列のセルに"日本"を入力すると、 その該当するC列とD列のセルの値や文字列をクリアして斜線を入れたいのです。 例えば B2へ"日本"を入力すると、C2〜D2のセルに入っている値・文字をクリアして 自動的に斜線を入れる、 同じく B3へ"日本"を入力すると、C3〜D3のセルに入っている値・文字をクリアして 自動的に斜線を入れる、 といった感じです。 ここで B2に対してはそれらの動作が上手くいくのですが B3やB4以降の行に関しては上手くいきません。 例えばB3へ"日本"を入力するとC3〜D3のセル内容はクリアされずC2〜D2の値がクリアされてしまいます。 B4やB5以降に関しても同じくC2〜D2の値がクリアされてしまいます。
417 名前:デフォルトの名無しさん [2012/02/27(月) 07:39:07.10 ] 上の続きです。 一応マクロの文です。 おそらく相対参照の問題だと思います。 調べて試行錯誤しましたが上手いやり方がわかりません。 Excel2003です。 どなたかご教授お願いします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim r, trg As Range Set trg = Intersect(Target, Range("B2:B14")) If Not trg Is Nothing Then For Each r In trg If r.Value = "日本" Then r.Offset(0, 1).Resize(1, 2).Borders(xlDiagonalDown) _ .LineStyle = xlContinuous Range("C2:D2").ClearContents Else r.Offset(0, 1).Resize(1, 2).Borders(xlDiagonalDown) _ .LineStyle = xlNone End If Next r End If End Sub
418 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 07:47:41.48 ] > Range("C2:D2").ClearContents それはそうだろ、としか。
419 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 08:01:13.16 ] Range(Cells(i,j),Cells(i+?,j+?)) でこのi,j,?を操作すれば
420 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 12:37:05.35 ] Range("C2:D2").ClearContents を r.Offset(0, 1).Resize(1, 2).ClearContents で、いけたわ こういうのわかりにくいから、 r.offset(0.1).clearcontents r.offset(0,2).clearcontents ってやってるわ。
421 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 16:29:03.11 ] >>418-420 ありがとうございます。 削除する対象のセルを結合したセルにすると 「結合された一部のセルを〜」のエラーが出てダメになりましたが r.Offset(0, 1).Resize(1, 2) = "" にすると大丈夫でした。 お世話になりました
422 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 18:00:44.53 ] range(“a1“).numberformat=“@“ range(“b3“).numberformat=“hh:mm“ if range(“a1“)<>range(“b3“) then としても差異は検出されないけれど、セルの内容全てを比較したい場合は、全プロパティ分のifを書いてやらんとあきまへんのどすか。
423 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 18:02:54.64 ] .text
424 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 19:26:17.07 ] range("a1").numberformat="#,##0" range("b3").numberformat="#,##0;-#,##0" 値は両方とも100 この場合も違うと判定させたい?
425 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:40:37.48 ] させたいどす。 .value でも .width でも罫線でも、違いを検出したいんどすえ。
426 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 10:59:13.54 ] rangeのプロパティカウントさせることができないっぽい 自分で関数作るか、if文書くかしかなさげ というか、プロパティカウントできないの初めて知ったわ これ地味に不便ね
427 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 12:42:32.91 ] VISTA Excel2007 です ライブラリの参照設定をコード内で実行したいのですが、 同じ文を標準モジュールに書くとエラーが出ないのに クラスのイニシャライズに書くと「中断モードでは実行できません」と エラーメッセージが出ます(ただ参照設定の処理がなされます) クラスのイニシャライズでエラーが出る原因など分かる方がいましたらご教授ください 以下コード: Const DAOFileFPath As String = "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" ActiveWorkbook.VBProject.References.AddFromFile DAOFileFPath
428 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 21:31:31.36 ] >>427 べつに普通に実行できるが そのエラーメッセージの通り、中断モードのままやるからエラーになってるだけだろ
429 名前:427 mailto:sage [2012/02/29(水) 01:03:02.92 ] すみません もっと早く書き込みたかったのですが仕事で抜けられませんでした イニシャライズでなくメソッドにしても同じエラーになったので もしやと思い、クラスを新規作成して一からコードを手打ちしていったら 今度はうまく行きました モジュールが壊れていたんだと思います 必ず通るはずのStopをスルーして、その先のMsgBoxが動いている時点で気づくべきでした 前にもこんなことがあって、別のモジュールに一から書き直したらやっぱり普通に動いた そんな無茶な使い方してるわけじゃないのにな… どうも失礼しました
430 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 02:44:05.36 ] いやだから、Stopで止まったら中断モード... まあいいか
431 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 10:05:54.43 ] 忙しすぎて日本語読む余裕がないんだろうな
432 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 00:18:08.68 ] すみません、どうも詰まってしまったので質問させてください 商品名の入っているシートから、数学で言う所の和集合を取りたいと考えています 例えば、 A列 B列 1 CC TT 2 HH CC 3 TT E3 となっているようであれば、(CC、TT、HH、E3)を取り出して、できれば1セルに一つの名前という形で長く並べたいと考えています Sub Test() Range("F8").Value = Union(Range("A1:A3"), Range("B1:B3")).Value End Sub おそらくUnionを使うのかなと考えて、とりあえず1セルに一つの名前ということを考えずに書いてみたのが上のコードなんですが、 実行するとF8にはCCしか入力されません。これはどこが間違っているのでしょうか? どなたかよろしくお願いいたします。
433 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 02:13:02.97 ] すいません、色々試してみたら半分くらい自己解決できました。 Sub MultipleRange() Dim rng1 As Range, rng2 As Range, myMultiRanges As Range Worksheets("Sheet1").Activate Set rng1 = Range("A1:A3") Set rng2 = Range("B1:B3") Set myMultiRanges = Union(rng1, rng2) Dim i As Integer For i = 1 To 6 Cells(10, i).Value = myMultiRanges(i).Value Next i End Sub これだと重複ができるようなので、これやった後に重複チェックのコードを別にかければなんとかいけそうです。お騒がせしました
434 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 10:10:50.67 ] Excel2010 (win7 home) Worksheets("test")の Private Sub Worksheet_Activate() UserForm1.Show End Sub と入れて Worksheets("test")のタブをクリックして表示させた時に Userform1が立ち上がるのは確認したんですが、 ThisWorkbookのシートモジュールの Private Sub Workbook_Open() Worksheets("test").Activate End Sub としてブックの起動時にWorksheets("test")をアクティブにしても Userform1が出てこないんですが、これはなぜ? 明示的に UserForm1.ShowをWorkbook_Open()に入れればもちろんフォームが 出てくるんですけど、これではあまり意味がないような気がする んですけど。
435 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 10:20:46.78 ] 九分九厘、そのワークシートtestがブックを開く時点からアクティブなんだろうな。 ワークシートのActivateイベントは「他のシートから移動してきたとき」しかトラップされないから、 ブックを閉じるときにtestがアクティブな状態で保存されて、開くときに最初からアクティブだとトラップできてない。 試しにワークシートtest2を作って、それをアクティブにした状態で保存して開いてみ?
436 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 10:38:38.23 ] おおっ、即レスかつその通りでした! ありがとうございますm(__)m
437 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 18:16:46.90 ] VBAで あ 1 あ 1 を行を文字と数字に列を整えることは可能?
438 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 18:20:24.65 ] ちゃんとした日本語の説明か、結果のプレビューを頼むwwwwwwwwwwwwwwww
439 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 20:08:50.04 ] エスパーの訓練が捗るな
440 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 20:50:42.49 ] Excel2010(vaista)ですが 家計簿を作成してまして収入と支出の差額を表の一番右下の セルに表示させているのですがそのセルの数字が黒字(0以上)ならセルの背景を青 赤字(0未満)ならセルの背景を赤にしたいのですが上手くできません そもそもVBAでは不可能なので素直に条件式書式設定を毎回 使用したほうが良いのでしょうか?
441 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:14:39.94 ] 条件式書式設定でできることを態々VBAでやろうとする意味が分からないんだが
442 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:09:42.41 ] Excel 2010です。開発タブをリボンに表示させる方法を教えて下さい。 2007では、「ファイル」→「オプション」で「開発タブをリボンに表示する」が 出て来るのですが。
443 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:15:51.44 ] イベントプロシージャに親プロシージャの引数をわたすことは 可能でしょうか?
444 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:20:12.40 ] >>443 おや?
445 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:23:55.72 ] 今日は妙に>2すら読まない奴が多いな…
446 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:38:50.37 ] >>442 ファイル→オプション→リボンのユーザー設定→開発にチェック
447 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 12:51:59.64 ] ユーザーフォーム上のコマンドボタンの色を変更する目的でカラーパレットを表示させたいのですが、 どうすればいいでしょうか? マクロに記録してから中身を見ようと思ったのですがVBAにはマクロの記録がなくて、ググっても RGBの値を直接代入する例ばかりでよくわかりませんでした。 よろしくお願いします。
448 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 13:03:47.62 ] カレーパレットダイアログは搭載されてない。 自分でユーザーフォームで1から作るか、WinAPIを使って自分で実装するしかない。 お好きな方で。
449 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 13:16:57.63 ] >>448 ありがとうございます。 自作することにします。
450 名前:デフォルトの名無しさん [2012/03/02(金) 13:54:58.28 ] パッチあてるのどうやるの? sed -i s/hello/こにゃにゃちわ/g *.[ch] cc *.[ch] 相当。export、import手作業は嫌です。
451 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:04:19.91 ] そんな便利なものはない。 自分でやるなら、VBComponent.CodeModule.ReplaceLine使え。
452 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:08:57.19 ] アドインにしとけ
453 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 18:23:02.19 ] witheventsを使うときに、コマンドボタンの1〜5個めはイベントを共有して、 6〜10個めはそれぞれ独自のイベントにしたい場合はwitheventのプロシージャーの 中で判断するしかないですか?
454 名前:デフォルトの名無しさん [2012/03/02(金) 18:41:09.43 ] >>451 ありがとう。 var=VBComponent....Lines(...) replace(var,“hello“,“こにゃにゃちわ“) VBComponent....Lines=var みたいにして絶望していた。 >>452 もう一歩教えてくだsあ。 アドインにReplaceLine()なりを書けという意味? アドインにサブルーチンの置換プラグイン相当の機能があるという意味?
455 名前:デフォルトの名無しさん [2012/03/03(土) 16:16:57.97 ] シートがなくなるまで、2シートずつ選択してプリント。 Sub pare_print() Dim i As Integer For i = 2 To Sheets.Count Worksheets(Array(i, i + 1)).PrintOut i = i + 2 Next i End Sub できません・・・なんででしょう??(´Д⊂ヽ プリントアウト始めのシートは2番目からです。。
456 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 16:22:32.24 ] 複数枚のグラフをユーザーフォーム上に重ねて表示させることはできるでしょうか? 今はシート上に重ねて表示させているのですが表示場所をずらしたい時とか、全体に 拡大縮小したい時にどうすればいいかわからず、ユーザーフォーム上ならユーザーフォームを 移動、拡大縮小することによって簡単にできるかなと思ったのですが、ググっても情報がないみたいで。 よろしくお願いします。
457 名前:455 [2012/03/03(土) 16:26:48.45 ] どうもすみません。 最初のシート名は、0だったようです。できました。
458 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 17:14:23.39 ] 顕正新聞 平成24年2月5日号「原発全廃特集号」 原発は日本を滅ぼす、即時全廃せよ 人のDNAを破壊、国土を居住不能にする 代替は天然ガス・コンバインドサイクルで十分 惨禍もたらすを知って推進するは犯罪 ttp://d.hatena.ne.jp/kensho01/20120208/1328718592
459 名前:456 mailto:sage [2012/03/03(土) 20:56:39.14 ] すみません。OSとバージョンを書き忘れました。 OS:BeOS Release4 (intel版です。PowerPC版ではありません ) バージョン:Gobe Productive 1.1 引き続きよろしくおねがいしますm(_ _)m
460 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:36:07.81 ] こんにつわ、質問です。 A1-A50にランダムで指定の文字列もしくは空白が入ります。例えばリンゴ、ミカン、etcで、それぞれリンゴ...001、ミカン...050のようにあらかじめ対応する数字が割り振られています。 この文字列、つまり数字を条件に処理したいのですが、この場合A1から順に判定するよりも、A列から抽出して重複と空白を除外し、その結果を例えばB列に貼り付けて、B1からB?の空白まで処理をくり返すのが良いと思うのですが、どうでしょうか。具体的にどう書けば良いですか?
461 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:41:38.47 ] >>460 B列に貼り付ける処理が無駄 FOR EACH でA列のRANGEを処理しながら回せばよろし
462 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:57:16.47 ] thx. RANGEが固定ではない場合の上手い方法ありますか?適当に下まで引っ張ればいいですか?
463 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:12:33.48 ] 分からねえ分からねえよぉ A列に指定の文字列ランダムに配置 B1-B50に指定の文字列 C1-C50に指定の文字列に対応する数字 があるとして、A1から順番に対応する数字をMsgboxで表示していくコード誰か書いてくれぉ
464 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:18:31.63 ] VLOOKUP使えよ
465 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:33:29.98 ] thx. A1からセル内の数字だけ取り出すにはどうすればいいですか? 漢字/12345\/ という形式から 12345 を取り出したいです 漢字は1-5文字のランダムなので、LEFTは使えないです 数字は5桁固定で必ず\の前です
466 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:35:50.15 ] for i = 1 to 最終行 最終行の取得はお好きにどうぞ
467 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 11:38:22.77 ] >>465 正規表現でもLikeでもお好きにどうぞ
468 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 12:24:26.18 ] Dim c As Object For Each c In Worksheets(imacat).Range("A1:A100") If c.value Like "*##*" Then Msg: MsgBox "cである" End If Next c ここまで出来た…
469 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 12:27:05.40 ] Msg:要らないな MsgBoxにマッチした数字を表示したいのですけどできません
470 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 12:44:36.54 ] >>469 AHO
471 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 12:51:45.21 ] MsgBox c & "である"
472 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 13:00:32.31 ] そもそもLikeでマッチした数字返せるのけ?
473 名前:デフォルトの名無しさん [2012/03/04(日) 13:12:38.41 ] >>465 instrで/と\の位置を探してmid関数を使えば?
474 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 13:19:10.28 ] >>463 コード書いたのでどうぞ使ってください。>>464 のいうとおりVLOOKUPを使用して組んでみました。 Sub Test() Const s = vbKeyLButton: Const e = vbKey2: Dim vlookup: Set vlookup = Application Dim i: For i = s To e: Dim v: v = Evaluate(Chr(vbKeyF7) & Chr(vbKeySeparator) & Chr(vbKeyDivide) & Chr(vbKeyDivide) & _ Chr(vbKeyAdd) & Chr(vbKeyF6) & Chr(vbKeyF1) & Chr(vbKeyDown) & Chr(vbKeyNumpad1) & i & _ Chr(vbKeySnapshot) & Chr(vbKeyNumpad2) & s & Chr(vbKey9 + 1) & Chr(vbKeyNumpad3) & e & _ Chr(vbKeySnapshot) & Chr(vbKey2) & Chr(vbKeySnapshot) & Chr(vbKeyNumpad6) & Chr(vbKeyNumpad1) & _ Chr(vbKeySeparator) & Chr(vbKeyF4) & Chr(vbKeyNumpad5) & Chr(vbKeySelect)) ' VLOOKUPで数字をMsgBoxで表示する vlookup.OnTime Now() + TimeValue(Chr(vbKey0) & Chr(vbKey9 + 1) & Chr(vbKey0) & Chr(vbKey9 + 1) & i), _ Chr(vbKeyRight) & Chr(vbKeySubtract) & Chr(vbKeyNumpad2) & Chr(vbKeyDown) & IIf(IsError(v), String( _ vbKeyRButton, Chr(vbKeyPageDown)), v) & Chr(vbKeySelect) & Chr(vbKeyRight) Next End Sub Sub MB(v): MsgBox (v): End Sub
475 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 13:31:13.08 ] >>472 かえせるべ 正規表現のほうが楽だけど str= "あいうえお12345" strlen= len(str) for i =1 to strlen cha= mid(str,i,1) if cha lile "[0-9]" then c= c &cha end if next
476 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 13:35:24.62 ] すげー。自力じゃ無理だったので有難く使いますthx!!!