1 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:25:04 ] 過去スレ 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/
596 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:10:08 ] 知らんがな(´・ω・`)
597 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:32:33 ] "C:\Documents and Settings\データ\_" & i & ".txt" としてやらんといかんのとちゃうかな
598 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 20:34:03 ] >595 データさんか? 普通はそこにアカウント名が入るんだが。 まさかとは思うがi.txtのiって・・・w
599 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:00:42 ] >>このプログラムの目的は、テキストデータの入っているフォルダを >>他の名前に変更したときも、その中に入っているテキストデータ10個を >>エクセルで展開するためです。 (・ω・`)???
600 名前:595 [2009/11/12(木) 21:12:37 ] みなさんアドバイス感謝です! 説明不足ですみません。 質問ではテキストデータと書きましたが、.datで保存されています。 フォルダの中に「_0.dat」「_1.dat」「_2.dat」…というデータが10個あります。 ほんとは10個開きたいのですが、とりあえず5個開けたら5を10に直せばいいかなと 思ってます。 >>597 さん \データ\_"&i&".dat"としましたが、コンパイルエラーになります。 dat形式のデータは無理なのでしょうか?
601 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 21:18:41 ] "C:\Documents and Settings\データ\_" & i & ".txt" _ 死ね >>600
602 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:40:30 ] 597見てダメなら何聞いてもダメだろ スペルミスとかスペース抜けとかで質問されても困る
603 名前:デフォルトの名無しさん [2009/11/12(木) 23:56:23 ] Range("G1").Select の 1をfor文使って 1〜100までするにはどうすればいいでしょうか? For n = 1 To 100 Range("D&n&").Select だとエラーになります
604 名前:デフォルトの名無しさん [2009/11/12(木) 23:59:00 ] ↑ Range("G1").Select × Range("D1").Select ○
605 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:00:00 ] Range("D" & n).Select あるいは Cells(n, 4).Select
606 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:06:08 ] >>595 と>>603 は同じヤツか? 根本的に・・・
607 名前:デフォルトの名無しさん [2009/11/13(金) 00:09:35 ] ActiveCell.FormulaR1C1 = "=-(R[+&n]C[-2]-R[-4]C[-2])" R[+&n]を引数にする場合はどうでしょうか?
608 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:49:12 ] もはやネタだろ
609 名前:デフォルトの名無しさん [2009/11/13(金) 00:53:26 ] ネタじゃないです>< ActiveCell.FormulaR1C1 = "=-R["&n&"]C[-2]-R[-4]C[-2]" とかやってみたんですがダメでした
610 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 01:02:20 ] 寝たとしてもまったく面白くない もっと回答したくなるように質問しろ
611 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 01:03:42 ] >>594 AddShapeの引数を変数にして全体をループさせるだけでいいのでは? 共通パラメータをわざわざ関数にする必要はないと思う。 >あと自分で書いておいてなんですが(MyShape.Name)は何を表すんでしょう? ShapesのRangeプロパティは、指定したShapeのオブジェクトを返す。 この"指定した"というのが今回の場合はMyShape.Nameとなる。 正直わかりにくいし、Rangeなんて使った事無い。 With ActiveSheet.Shapes(MyShape.Name) もしくは With MyShape このどちらかが一般的だと思ってるがどうだろうか。 >>607 >>595 と>>603 に続いて同じ失敗をしている。 >>597 を参考にして考えればわかる。
612 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:51:53 ] 変数使ってセル座標の指定するなら、cells使った方が楽だと思ってる。
613 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 10:57:30 ] その方が速い
614 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 14:43:25 ] すまんが教えてください vbaでie制御して、ieのframes(a)内を全選択してコピーしたい。 frames(a)を全選択することが重要で、frames(b)の情報は必要ないし、innerText等での情報取得は避けたい。 ExecWBでやってみたけど上手く行かなかった。 SendKeysもいまいちだったし、出来るならやりたくない(違う作業が出来なくなるため) やり方に問題があるのか、違う方法があるのか? 教えてください。
615 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 18:44:29 ] ・自分に何かしら不幸な出来事が起きたとき、落ち込んでしまうのは仕方のない話。ショックが大きいほど、 人前に姿をさらすのも苦痛になるものだが、そういうときの行動こそ、人間の大きさが見えるものかもしれない。 米シカゴに住む34歳のティアン・ハリスさんは、 10月31日に幸せな花嫁となる予定が、6日前になって相手の 男性から突然結婚の中止を告げられてしまった。式直前でのまさかの事態だが、さらなる追い打ちを かけられてしまう。慌てて母親と一緒にパーティー会場にキャンセルを申し出ると、もう返金は不可能と 言われたそう。駐車場に座り込み落ち込むハリスさんと、なす術もなく見守る母親。そのとき、向かいに あった老人ホームを目にして良いことを思いついた。 どうせ無駄にするならと、2人は向かいの老人ホームの人たちとパーティーを開こうと決断する。 「寄付をしたい」とハリスさんが飛び込んだ老人ホームの施設長は、「彼女はここにいる誰も知らないだろうし、 そんなオファーも受けたことない」(米紙ニューヨーク・デイリーニュースより)と驚いた。かくして、ハリスさんの結婚パーティーは、 老人ホームのハロウィンパーティーへと変更。お年寄りたちも、思いもよらぬイベントを大いに喜んだという。 300人近いお年寄りは思い思いに仮装して、ダンスに興じた。あるお年寄りは「とても楽しい時間だった」 (米放送局CBSより)と語り、老人ホームに素敵なひとときをもたらしたハリスさんに感謝している。施設長も 「彼女はどこからともなくやってきて、私たちに美しいパーティーを与えてくれた天使」とハリスさんを讃えた。 会場の傍らでお年寄りの笑顔を見て満足したというハリスさんだが、本当なら自分が主役になるはず だったパーティーにやはり心境は複雑だったよう。母親も「会場で、皆さんの前にいるのが娘だったら よかった」と無念さを語り、施設長も「彼女は落ち込んでいたと思う」とハリスさんの心中を慮った。 しかし、そうした中でもお年寄りたちに幸せな時間を与えたハリスさんの人柄に、施設長は「神は彼女を祝福し、 きっとほかに良い人を見つけられる」と太鼓判を押す。 ハリスさんは11月2日に、新婚旅行となるはずだったハワイへ1人で旅立ったそう。花嫁になり損ねてしまった ハリスさんだが、彼女が取った決断が多くの人に幸せを与えただけでなく、少なからず自分への励みに なったことを願いたい。(抜粋) www.narinari.com/Nd/20091112560.html
616 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 18:49:15 ] なげーよ 2行でギブw
617 名前:デフォルトの名無しさん [2009/11/13(金) 19:33:04 ] 質問です。 10ページある文書のうち、例えば2、5、7ページだけを印刷したい場合、 Sub 印刷() Worksheets("文書").PrintOut from:=2, to:=2 Worksheets("文書").PrintOut from:=5, to:=5 Worksheets("文書").PrintOut from:=7, to:=7 End Sub と、やるのでしょうか? なにかもっと良い方法がありそうな・・・ OSはVISTA、バージョンは2007です。
618 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 21:27:48 ] Sub 印刷() Worksheets("文書").PrintOut pages:=2,5,7 End Sub
619 名前:あ [2009/11/13(金) 22:01:06 ] 質問させて頂きます。 A1からA100に1から10の数字を入力するマクロを作成 していますが、無限ループになってしまいます。。 どのようにすればよろしいでしょうか? Sub Ary() Dim Arow As Long Dim i As Long For i = 1 To 600 Cells(i, 1).Value = i If i = 10 Then i = 1 End If Next i End Sub
620 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:26:21 ] >>619 個人的には >For i = 1 To 600 に突っ込みたいが、まじめに答えるとi=10の時にi=1にしろって指示してるので i=1 → 10 → 1 → 10 → の無限ループになってる 1,2,・・・10,1,2,・・・ と繰り返したいなら cells(i,1)=i%10 みたいに余りを計算すれば良い (余りの計算は %じゃなくてmodとかかも知れない。忘れた)
621 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:27:52 ] ごめん 10で割って余りだと0,1,2,・・・,9,0,1,・・・ってなるから1足せ
622 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:57:12 ] >>619 カウンタ変数(i)をForループの中で書き換えるのは可能な限り避けた方がイイ 何回回ったかわかんなくなっちゃうよ
623 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:02:36 ] 【科学】道路に軍手が落ちているワケ、名城大研究チームが突き止める[09/11/05] namidame.2ch.net/test/read.cgi/hidari/1257990721/
624 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:51:45 ] >>620 Dim Arow As Longに突っ込めよ
625 名前:デフォルトの名無しさん [2009/11/14(土) 04:51:06 ] e = "& mi &" + 5 * "& c &" - 5 mi、c は変数です。 何がいけないのでしょうか?
626 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 05:13:52 ] お前は2chに書き込んではいけない
627 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 07:43:48 ] e = mi + 5 * c - 5 じゃダメなの? 変数が文字列の中に含まれちゃってるよ。 ただのmiって文字列としか認識されない。
628 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 08:59:38 ] >>619 Sub Ary() Dim Arow As Long Dim i As Long Dim j As Integer j = 1 For i = 1 To 600 Cells(i, 1).Value = j j = j + 1 If j > 10 Then j = 1 End If Next i End Sub こんなものでどないでしょう。
629 名前:デフォルトの名無しさん [2009/11/14(土) 09:49:32 ] Arow ってなんだ
630 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:04:03 ] 正解(>>620-621 )が出た後にボケ回答(>>622 >>628 )が出てくる、の法則
631 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:12:07 ] 自分よりいい答えが出たのがそんなに悔しかったのか
632 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:15:19 ] (;゚д゚)ァ
633 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:49:33 ] >>619 Sub Ary() Dim Arow As Long Dim r As Range For Each r In Range("A1:A100") r.Value = r.Row Mod 10 Next r End Sub こんなものでどないでしょう。
634 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 10:50:58 ] ごめん 10で割って余りだと0,1,2,・・・,9,0,1,・・・ってなるから1足せ
635 名前:デフォルトの名無しさん [2009/11/14(土) 11:01:07 ] .Formular1c1="=Average(R["& c &"]C["& d &"]:R["& c+2 &"]C["& d+2 &"])" のようにRCの中に変数を入れたい場合はどうすればいいのでしょうか? アドバイスお願いします
636 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 11:07:03 ] 馬鹿発見
637 名前:デフォルトの名無しさん [2009/11/15(日) 01:17:24 ] 四択問題を作っています。 Public Seikai As Integer, i As Integer, Ruiseki As Integer Sub Quiz() Dim Det As String i = 1 Ruiseki = 0 Do Det = Sheets("Sheet3").Cells(i, 1) If Det = "" Then Exit Do UserForm1.Show i = i + 1 Loop While Det <> "" UserForm2.Show 'MsgBox "正解は" & Ruiseki & "問です。" End Sub sheet3のA列に問題番号、B列に問題、C列に正解番号を入れています。 問題は50問作ったのですが、この中から20問をランダムに表示する ようにしたいのですが、どのようにしたらいいかわかりません。 今は、50問全て順番に表示されてしまう状態です。 教えてください。 よろしくお願いします。
638 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 01:45:55 ] RAND()で適当な番号をふって並び替えて上から20問をつかう
639 名前:デフォルトの名無しさん [2009/11/15(日) 13:25:55 ] >>618 ありがとうございます! 助かりました。
640 名前:637です [2009/11/16(月) 00:26:37 ] >>638 マクロを具体的にどう変更したらいいかおしえてください…
641 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 08:16:40 ] >>640 例えば、D列に乱数で適当な数字を振る D列を見て数の大きい順に20問を出題する そこまで自分で作ったのなら、これくらいできるだろ? 宿題なら自分でどうぞ
642 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:18:19 ] マクロが A B C D こうあったとして、全てのマクロを実行するマクロを作るにはどうやったらいいですか?
643 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 11:26:37 ] 全てのマクロを呼び出すマクロを作ればいいだけだろ
644 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 16:52:03 ] Sub all_execute() A B C D End SUb wwww
645 名前:デフォルトの名無しさん [2009/11/16(月) 20:20:05 ] 私は基本C/C++のPGです。業務でVBAの面倒を見ることになりそうなんですが、 言語仕様がコンパクトにまとまってるような本はないでしょうか? VBAの仕様なんてたかが知れてるかもしれませんが、分厚い本やWEBサイトをいったりきたりするのは面倒だし 言語に自分の知らない部分があるというのが気持ち悪い性分なので、まとまってる本を探しています(WEBでもいいのですが) ・プログラミングの知識前提で、 ・ペラッペラの単色刷りで ・言語使用だけは満足してる オライリーのクイックリファレンスのVBA版みたいなのが理想です(探したけどなかった)。 VBAの解説本だとプログラミング未経験者向けの、カラフルで妙に分厚い本が多いような気がするのですが 私としてはクイックリファレンス的な本が理想なので… お勧めの本などあれば教えてください。
646 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:17:54 ] VBA辞典
647 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 22:23:14 ] >>645 マジレスだけどリファレンスとしてはオンラインヘルプ一択 結局ヘルプ以上にならないから初心者向けの分厚いカラー刷りになる 紙がよければ死ぬ気で全部印刷
648 名前:637です [2009/11/17(火) 00:26:19 ] >>641 RAND()で、 B列とC列のくみあわせは変わってしまうことは無いのですか?
649 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:28:24 ] >>648 ここはマ板ですよ?
650 名前:637です [2009/11/17(火) 00:38:30 ] >>649 死ねクズ
651 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 00:39:17 ] >>648 おまえの前にある箱の向こうにも人がいるんだぜ >>638 も >>641 も的確な回答してるじゃん それに対して、あーじゃない、こーじゃない、って・・・ 更に質問するんだったら ありがとう御座います。ヒントを基に組んでみたら、こんな動作をしました。 ここが怪しいと思うので、調べたり試行錯誤したのですが、こんなエラーが出てしまいます。 何かアドバイス頂けないでしょうか? くらい書いたほうがいんでね? なんとなくムカつく文章だったので勢いで書いた
652 名前:デフォルトの名無しさん [2009/11/17(火) 00:56:42 ] 的確?
653 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 01:01:43 ] >>652 的確だと思うぞ。
654 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 08:15:19 ] >>653 俺も的確だと思うけどな。 質問する側のレベルが低いんだろw
655 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 08:40:16 ] おまいらココ逝って正しいRANDの使い方教えてきやがれ www.nicovideo.jp/watch/sm8517855
656 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 09:03:50 ] 【社会】スーパーコンピュータ向け「Excel」開発中 - Microsoft tsushima.2ch.net/test/read.cgi/newsplus/1258414484/
657 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 11:57:24 ] A2〜A20000ぐらいまで誕生日(シリアル値)が入っています B列に年齢を出したいときは、どういう計算をすれば軽くなるでしょうか? 古いPC(win95)なのでものすごく時間がかかっています 他のマクロでも応用したいので、教えてください お願いします!
658 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:49:46 ] 関数にdatedifってのが有るから =DATEDIF(A2,TODAY(),"y") で済むと思うけど、どうしてもVBA上から使いたいならworksheetfunctionを付ければ?
659 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:25:58 ] ワークシートに関数を沢山入れると重くなる、という意味に解釈して VBAにて Range("B2").Value = DateDiff("yyyy", Range("A2").Value, Now) を必要行だけ繰り返す
660 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:54:25 ] >>643-644 単純に考えればいいってことがわかった気がする どうも
661 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 22:22:18 ] >>660 他のファイルとかに書いてあるのを呼ぶときはスコープが問題になることがあるから気をつけてね Public宣言付けたり、参照設定したりとか
662 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 09:58:30 ] ハイパーリンクに関する質問です。 例えばセルA1に何か文字列が入っている状態で セルA2に以下のシート関数が入っているとします。 =IF(A1="","",HYPERLINK("www.yahoo.co.jp/ ","Yahoo")) そうすると、セルA2には"Yahoo"の文字列が表示され "www.yahoo.co.jp/ "へのリンクが張られている状態です。 ここで、VBAにより、リンク先である"www.yahoo.co.jp/ "の文字列を 取得する方法はあるのでしょうか? セルA2に設定されている関数の文字列を解析するという手もあるとは思いますが、 それ以外で方法はあるのでしょうか?
663 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:09:25 ] あるんじゃない
664 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 14:14:34 ] >>658-659 とてつもなく軽くなりました、ありがとうございました!
665 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 16:45:42 ] >>664 >>658 の数式でも軽くなったの? もし重かったら揮発性関数のTODAY()のせいだな。 どこかのセル、たとえばF1にCtrl + ;で今日の日付を求めて =DATEDIF(A2,$F$1,"Y")とすれば数式でも軽くなるかもよ。
666 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 22:41:02 ] 1日か31日までの1ヶ月分のシートがあるとします それぞれのA1セルに日付をいれてます この1ヶ月分のシートの月曜日と火曜日だけを対象してなんらかの処理を行いたいときはどのような方法を取ればいいでしょう? よろしくお願いします
667 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:30:02 ] 1日か31日までってことは 1日の場合は前月の2日から一か月分って言う意味?
668 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:32:15 ] >>666 for each collectionでシートに対してループ回して その中でA1セルを調べて、曜日をチェック で、なんらかの処理を行えばOK
669 名前:666 mailto:sage [2009/11/18(水) 23:36:40 ] 失礼しました 1日から31日までの31シートです >>66 ぐぐってみます8
670 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 09:19:43 ] ワード・アクセスのVBAスレってありませんか?
671 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 09:24:37 ] pc12.2ch.net/test/read.cgi/tech/1170492587/ pc12.2ch.net/test/read.cgi/tech/1243095768/ pc12.2ch.net/test/read.cgi/tech/1168427595/ pc12.2ch.net/test/read.cgi/tech/1242136180/
672 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 11:42:02 ] ありがとうございます 検索しにくいっす・・
673 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 19:46:28 ] WordのVBAはどういうときに使うんだ?
674 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:13:37 ] 時節柄考えられるのは 年賀状宛名流し込み印刷かな
675 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 20:27:20 ] それVBAいらないやん
676 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:46:41 ] 差し込み印刷なんかExcel VBAでも同等のことするの簡単だよな。
677 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 21:49:26 ] A1セルに1月1日(月)のように入力しています ここから特定の曜日(火曜日と日曜日など)を区別して処理をおこないたいのですが どのような方法を取ればよいのかご教授ねがいます
678 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:10:09 ] >>677 おまえ666だろ 曜日を調べる関数を使う 関数名は自分で調べろ 以上
679 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:43:03 ] そもそも1月1日(月)って入力するのが間違いだ罠。 1/1と入力して表示形式をm月d日(aaa)にするだけだ。
680 名前:デフォルトの名無しさん [2009/11/20(金) 05:56:15 ] 質問 教えてえろい人 エクセルのVBAを使って、Outlookメールを複数の人に自動送信操作をさせたいです。 Aさん(○○○@○○.co.jp)にエクセルSheet1に記載された内容を送信し、 Bさん(XXX@XX.ac.jp)にエクセルSheet2に記載された内容を送信します。 後、CさんにエクセルSheet3を・・・という具合に・・・ 以上の事が、エクセルVBAを使って1回だけマクロを走らせるだけで、できるでしょうか?
681 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 07:34:40 ] ユーザーフォームのlistviewについて質問です listviewで縦横のスクロールバーのやり方が分からないのですが どうすればうまくいくでしょうか?
682 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:22:46 ] >>680 できるでしょうね
683 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 11:48:16 ] てst
684 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 21:52:10 ] >>680 ExcelのよりOutlookのVBA使ったらどうよ?
685 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 22:27:51 ] 同一セル内の数字を下のように並べかえたいのですがどうすればいいですか? 「333 「111 111 ⇒ 333 555」 555」 3桁ずつ切り分けて別セルに出力、ソートをかけて並べかえるというものは 出来たのですが、出来ればマクロの中だけで処理をしたいんです。
686 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:13:54 ] >>685 安直だけど、例えばセルA1を対象とするならこんな感じ Sub Macro1() a = Split(Range("A1").Value, Chr(10)) For i = 0 To UBound(a) - 1 For j = i + 1 To UBound(a) If a(i) > a(j) Then tmp = a(i) a(i) = a(j) a(j) = tmp End If Next j Next i Range("A1").Value = Join(a, Chr(10)) End Sub
687 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:17:11 ] こんにちわ。 質問をさせてください。 正規表現でのマッチパターンを用いて、 文字列をSplitして配列に入れたいと考えています。 以前javaで行った時は問題無く出来たのですが、 VBAの場合には上手くパターンを認識してもらえません。 下のコードで行ったのですが、”スペース”or","の1回以上の繰り返しでSplitを目的としています。 Sub testVBA() Dim Reg As Object Dim regPattern As String Dim reMatch As Object Dim i As Integer Dim STR As Variant Set Reg = CreateObject("VBScript.RegExp") Reg.Pattern = "[ ,]+" STR = Split("moug MOUG,モーグ,,もーぐ", regPattern) For i = 0 To UBound(STR) Debug.Print (STR(i)) Next End Sub 続きます。
688 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:17:20 ] javaのコードは下で行いました。 import java.util.regex.*; public class testJava { public static void main(String[] args) { Pattern pattern = Pattern.compile("[ ,]+"); String[] strs = pattern.split("moug MOUG,モーグ,,もーぐ"); for (int i=0;i<strs.length;i++) { System.out.println(strs[i]); } } } VBAで出来るのであればやり方を教えてくださいませ。 VBAでは対応していないと言う事でも構いません。 何卒よろしくお願いします。
689 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 23:18:42 ] すいません・・・。 モーグで質問しようとして準備していた文書を張ってしまいました。 ちなみにマルチポストではありませんので、よろしくお願いします。
690 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 00:40:26 ] >>687 VBAのSplitが正規表現を受付けないんじゃないの s = "123 456 789" ArySize = 0 Dim Ary() Set re = CreateObject("VBScript.RegExp") re.Pattern = "[ ,]+" Do ArySize = ArySize + 1 ReDim Preserve Ary(ArySize) Set Matches = re.Execute(s) If Matches.Count <> 0 Then v = Left(s, Matches(0).FirstIndex) s = Right(s, Len(s) - (Matches(0).FirstIndex + Matches(0).Length)) Else v = s End If Ary(ArySize - 1) = v MsgBox v Loop While Matches.Count <> 0 MsgBox Join(Ary, "$")
691 名前:687 mailto:sage [2009/11/21(土) 08:37:43 ] >>690 レスありがとうございました。 やはりVBSのオブジェクトですし、VBAのsplitが対応してないのは頷けます。 ソース例の提示、ありがとうございました。 自作関数で対応しようと思います。 重ね重ねありがとうございました。
692 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 10:02:39 ] excel2007 ブックに変更が有った時に保存するようにしたいのですが、変更が有ったか無かったかのチェックって どうするのでしょうか? 保存するのはThiworkbookの閉じる時で Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub の中に入れれば良いのでしょうけれど。
693 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 11:15:06 ] >>692 If WorkBook.Saved = False Then '保存処理 End If
694 名前:デフォルトの名無しさん [2009/11/21(土) 11:21:38 ] >>693 thxです!
695 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 12:50:52 ] WinVista-Excel2007 VBAでなくActiveXの問題かもしれませんが VBAの編集中に起きた問題なのでコチラで。 先にActiveXのボタンを配置しVBAで記述したSub{}を実行するという簡単なものを複数作成していたのですが 5・6個作り終えいざ実行してみようとボタンを配置してあるワークシートを開こうとしたところ ボタンは表示されずエラー(特定のエラー名表示されず)が起きExcelが強制終了してしまいます。 また新規作成でActiveXのボタンを新たに配置しようとしても同じ現象が起こりました。 アドインも複数導入している状態のためもしかするとVBAの可能性も捨てきれないのではと質問させて頂きました。 対処法・解決策はございますでしょうか? 宜しくお願いいたします。
696 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 13:18:23 ] >>695 俺は何に原因がわかるかは知らないし、 ActiveXに関係ない話だが俺の話を聞いてくれ Excel VBAでプログラム作ったんだよ。 クラスとかwitheventsとか使ってね。 そしたらなぜかExcelが強制終了するんだよw いや、しないときもある。するときもある。 自分のマシンでは強制終了するのに、他のマシンでは動くとか 新しくExcel作ってソース全部移植したら直るんだよ。 でもしばらくするとまた強制終了するようになるんさよ。 原因さっぱりわかんねw 俺は思ったね。Excelで無理しちゃいけねぇ。 単純なマクロ程度で終わらせておくべきだって。