[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 09/20 10:57 / Filesize : 218 KB / Number-of Response : 791
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA質問スレ Part13



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で無理しちゃいけねぇ。
単純なマクロ程度で終わらせておくべきだって。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef