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/
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で無理しちゃいけねぇ。 単純なマクロ程度で終わらせておくべきだって。
697 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 13:42:52 ] >>695 起動時に強制終了するアドインでも作ったんじゃね?
698 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 14:51:42 ] >696 わかる
699 名前:685 mailto:sage [2009/11/21(土) 15:14:26 ] >>686 出来ました。 ありがとうございました。
700 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:15:33 ] パチンコ店 ATM8000台 IIJ社 今後4、5年で全国に www.jcp.or.jp/akahata/aik09/2009-11-14/2009111401_04_1.html 2chとパチンコ屋が無くなれば日本の景気は上向くかもな
701 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 18:55:37 ] >>695 >>696 俺も似たような現象で悩んでいる。 アドイン複数入れて、VBAでプログラム作って2〜3回動かすのには問題ないんだが しばらく使ってExcelを終了させると、 「問題が発生したため、Microsoft Office Excelを終了します。ご不便をおかけして申し訳ありません。」 とかいうふざけたエラーが出てくる。 俺の記憶が確かなら、 グローバル変数とか配列を大量に使いだした辺りでぶっ壊れた気がする。 メモリを開放しなきゃいけないとか、そういうことなのか???
702 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 19:05:46 ] エクセルのブック自体が変なメモリリークをしてぶっ壊れるってのをよく聞くぜ。
703 名前:デフォルトの名無しさん [2009/11/22(日) 00:08:50 ] >>680 MSのサイトにoutlook使ったメール送信のサンプル見つかると思うから それを参考にしたら? Accessに取り込んだ内容を登録したメアドにoutlook使って送信するPG を昔作ったことがあるから、出来るはずだよ ウイルス対策用(だろうなぁ・・)で1通単位でダイアログ押という仕様の 回避用のexeも見つかると思うから探してくれい
704 名前:デフォルトの名無しさん [2009/11/22(日) 14:29:02 ] excel 2007 xp sp3 Sheet1のA1にSheet2を参照とした「=SUM(Sheet2!$A$2:Sheet2!$A$3)」を入れる為のマクロ、 Sub test() Sheet1.Cells(1, 1).Formula = "=SUM(" & Sheet2.Cells(2, 1).Address & " : " & Sheet2.Cells(3, 1).Address & ")" End Sub ですと、Sheet1のA1には同一シートを参照とした「=SUM($A$2:$A$3)」となってしまいます。 "=SUM(" & Sheet2.Cells(2, 1).Address & " : " & Sheet2.Cells(3, 1).Address & ")"の部分を "=SUM(Sheet2!$A$2:Sheet2!$A$3)"にすれば解決するのはわかっておりますが、 どうしてもcellsを使いたく質問させていただきました。 解決策がありましたら、宜しくお願いします。
705 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 14:39:40 ] >704 突っ込み所がいろいろと・・・ 本題は数式のINDIRECTで解決しそうな気がするが?
706 名前:デフォルトの名無しさん [2009/11/22(日) 14:51:06 ] >>704 Sheet2.Cells(2, 1).Address が何を返すかを考えればいいんじゃね? Sheet2.Cells(2, 1).Addressって書き方をするのも珍しい.....
707 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:21:46 ] プログラミング経験なしで興味を持ち趣味で覚えたいと思い色々考えた結果、 javascriptとvbscriptを学ぼうと思いました。入門するために言語について探しているうちに、 下記のようなことがしてみたいと思ったのですが、出来るのかということと、 もっと適した言語があるのかをご存知であれば助言くださるとうれしいです。 過去の株価を利用したシミュレーションプログラム。 具体的には、データとして興味のある某銘柄の日柄(日別に始値、高値、安値、終値、出来高) を10年分オープンオフィスの表計算calcにyahooファイナンスから入手しました。 例えば、このデータを使って特定の日にその株を1000株買い、以降10円上がれば売り、売り値から 10円下がればまた買い、その買値より10円下がれば買い増し(仮の現金残高がなくなるまで)し、 それぞれは買値より10円上がると売る。 持ち株がなくなると、高値から1割下がったところからまた始める。 というようなことを繰り返すと、いくらの利益でいくらの買値ので どれぐらい持ち株になった状態かを結果としてだすものです。 javascriptやvbscriptでも出来るのでしょうか、それとももっと別のスクリプト 言語の方が適しているのでしょうか? よろしくお願いします。。
708 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:19:54 ] 何か変なヤツが迷い込んでるな〜
709 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:45:53 ] >>707 ようは売買システムのバックテストしたいんだろ できるよ というか言語で出来ることが制約されるケースは少ない もちろん得意、不得意はあるけど ってことで好きな言語使いな そして、このスレ以外に逝け
710 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:56:01 ] >>707 ExcelVBAがいいんじゃないか?
711 名前:701 mailto:sage [2009/11/22(日) 20:57:29 ] >>702 MSのバグかよ。 データはエクセルから取得して、処理は他(とりあえずDelphiを考えている)でやって、 結果をまたエクセルに返すかな・・めんどくさ・・
712 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:10:43 ] うっはっっw MSのバグ扱いかよw
713 名前:701 mailto:sage [2009/11/22(日) 21:26:24 ] >>712 じゃあ原因は何なんだよ
714 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:12:12 ] 確かに、ウィンドウズもエクセルもMSだな。 そう考えたら、世の中で起きるバグの50%はMSのバグと云っても過言ではない。
715 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:31:13 ] >>714 だがオレのPCのバグは99%オレのバグと言っても過言ではない 何度PCや開発ソフトのせいにして、その後取り下げたことか・・・
716 名前:デフォルトの名無しさん [2009/11/22(日) 22:41:02 ] >>715 wwwww
717 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:50:32 ] >>715 まぁ、シンタックスエラーなら仕方ないな。
718 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 10:52:45 ] >>510-544 お前らwwwww 今更だけどツボったwwwww そういうセンスがいるんだなコーディングって俺まだまだだわ。
719 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:34:44 ] >>707 15マソぐらいとちょっと高いけど、検証くんなどソフトもあるぞ
720 名前:デフォルトの名無しさん [2009/11/23(月) 15:05:25 ] excel2003 こんにちは For Nextを使い、 セルE5、E6、E7へそれぞれ「H線」「L線」「中心線」という文字を入れたいのですがどうすればよろしいでしょうか? For i = 1 to 3 Cells(5,i + 4) = ? next i