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/
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
721 名前:デフォルトの名無しさん [2009/11/23(月) 15:30:19 ] x = Array("H線", "L線", "中心線") For i = 1 To 3 Cells(5, i + 4) = x(i - 1) Next i 初心者の発想はこんな感じ。
722 名前:720 [2009/11/23(月) 15:45:34 ] >>721 早速のご回答、誠に有り難うございます。 >>721 様のおかげで解決できましたので、心より御礼申し上げます。
723 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:22:36 ] 初心者に配列はいきなりきついんじゃないか?
724 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:31:36 ] >>720 For-Next使う必要ないじゃん For i = 1 To 3 Next i Range("E5").Value = "H線" Range("E6").Value = "L線" Range("E7").Value = "中心線"
725 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 17:07:02 ] >>723 配列無しで出来る? 俺には思いつかなかった
726 名前:デフォルトの名無しさん [2009/11/23(月) 17:21:26 ] >>724 よく見たら笑えるww三回回ってワン あれは配列のお勉強だったんじゃね?
727 名前:デフォルトの名無しさん [2009/11/23(月) 17:32:17 ] For i = 1 to 3 Cells(5,i + 4) = Iif(i=1,"H線",Iif(i=2,"L線","中心線")) next i 配列思いつかなくてもできるじゃん不気味で自分はこんなの書きたくないけど。
728 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 18:01:59 ] なんでループにすんの?
729 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 19:07:59 ] これはどうですか For i = 1 To 3 Cells(5, i + 4) = Choose(i, "H線", "L線", "中心線") Next i
730 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 19:14:19 ] x = Array("H", "L", "中心") For i = 1 To 3 Cells(5, i + 4) = x(i - 1) &"線" Next i
731 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 19:17:41 ] vbaにもchoose関数あるの初めて知ったわw
732 名前:デフォルトの名無しさん [2009/11/23(月) 19:29:47 ] 同じく、知らんかった。へ〜。。。
733 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 20:05:46 ] x = Array("H", "L", "中心") ReDim y(1 to 1 , 1 to 3 ) For i = 1 To 3 y(1 , i)=x(i - 1) &"線" Next i Range("E5:E7")=y もしもしからなので動くかどうかはしらね
734 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:37:37 ] >>724 お前>>718 だろ?w
735 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:44:02 ] >>720 >>529 流に書くとこうだな。 For i = 1 To 3 Next Range("E6:E8").Value=WorksheetFunction.Transpose(Split("H線 L線 中心線")) 下が普通だが。 For i = 1 To 3 Next Range("E6:E8").Value=WorksheetFunction.Transpose(Array("H線","L線","中心線"))
736 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:53:08 ] おまいらForがかわいそうとかNextが不憫とか思わんの?
737 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 21:58:09 ] >>721 の一部修正 x = Array("H線", "L線", "中心線") For i = 1 To 3 Range("E5").Cells(1, i).Value = x(i - 1) Next i
738 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:02:05 ] なんだChooseがVBAで使えるのかよ。 俺も知らんかったわ。
739 名前:デフォルトの名無しさん [2009/11/23(月) 22:11:42 ] 何もないのに回っているFor-Nextを思うと萌える
740 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:25:43 ] For i = 1 To 3 Next i Range("E6:E8").Value = [{"H線";"L線";"中心線"}]
741 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:28:06 ] Evaluateか、なるほどそれもあるな。
742 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:28:09 ] Sub 萌() Do Loop Exit Sub
743 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:33:23 ] >>739 何もなくても行数を稼ぐのが昔はプロの技と言われたもんだぜ
744 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:35:06 ] ボッタクリの末路は...
745 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 22:43:56 ] >>742 無限ループって怖くね? pc11.2ch.net/test/read.cgi/prog/1140435913/
746 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 00:22:51 ] i = 1 Loop1: If i > 3 Then GoTo Loop1_End Select Case i Case 1: Cells(5, 5).Value = "H線" Case 2: Cells(5, 6).Value = "L線" Case 3: Cells(5, 7).Value = "中心線" End Select i = i + 1 GoTo Loop1 Loop1_End:
747 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 14:22:47 ] Ruby 1.9 And Rails 3.0 www.slideshare.net/arrrrcamp/ruby-19-and-rails-30
748 名前:デフォルトの名無しさん [2009/11/26(木) 15:55:58 ] >>745 ずーっと萌え続けるからいいんじゃね
749 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 17:09:50 ] www.nikkei.co.jp/news/market/20091126m1ASS0ISS16261109.html
750 名前:デフォルトの名無しさん [2009/11/26(木) 17:39:38 ] まったくズブの素人です。 これからブイバ初めても間に合いますか? プログライミングをでけるようになりたいから 手始めにVBAから勉強するのか迷い中です。 何か時代は.NETでブイビーも.NET それじゃ〜ブイバももう手遅れなんでしょうか?
751 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 17:47:16 ] 373 デフォルトの名無しさん [] 2009/11/26(木) 17:41:52 ID: Be: パイソンって強そうな名前ですが、本当につおいのですか? でもちょっとHでもありますが。。
752 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 18:39:28 ] ↑ 暇人
753 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 19:17:14 ] >>750 プログラミング云々以前に日本語を正しく書けるようにしろよ 「プログライミング」とか「ブイバ」とかさ、、、w それに間に合うとか間に合わないかとかの問題じゃないと思うよ。 Excelでやらせたい事があるんだったらVBAだろうし。
754 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 20:41:09 ] >>753 あっプログラミングの間違い、頭ではプログラミングつって 書いた覚えなんだけんど。 そんでブイバって読むんとちゃうんかいな。長いでど ブイビーエーとでも言うんですか? 田舎もので素人だもんで、そげんこつも誰も教えてくれんから、 愛嬌ということで。。
755 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 20:49:00 ] 972 デフォルトの名無しさん [sage] Date:2009/11/23(月) 17:09:32 ID: Be: ID強制になるだけで静かになるよ 973 デフォルトの名無しさん [] Date:2009/11/23(月) 18:02:02 ID: Be: その変更はキミに任せるから提案してくれ。 974 デフォルトの名無しさん [] Date:2009/11/23(月) 18:18:58 ID: Be: 反対するのは荒らしたい奴だけだから強行しちゃって良いよ
756 名前:デフォルトの名無しさん mailto:sage [2009/11/26(木) 21:23:18 ] ↓うーんセフセフのAA
757 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 21:27:13 ] ↑そのAA持ってないんですいませんがw Excel2007 テキストボックスについてですが。 MultiLineをtrueに、ScrollBarsをfmScrollBarsBoth にセットして、データの表示(更新)用に使っています。 表示する時にマウスのホイールボタンでスクロール出来るようには 出来ないのでしょうか?
758 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 01:08:03 ] yes we can
759 名前:720 [2009/11/28(土) 11:55:34 ] EXCEL 2007 こんにちは マクロを使い、オートフィルで連続データを作成しているのですが、 書式もオートフィルされてしまい困っています。 値だけをオートフィル(連続データ)するやり方があればご教授ください。 宜しくお願いします。
760 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:12:04 ] .value
761 名前:デフォルトの名無しさん [2009/11/28(土) 12:18:21 ] マクロの記録でやってんのかな 試したけど無理っぽいから、あきらめてきちんとコードを組む
762 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 12:40:59 ] 構文 Object.AutoFill(Destination, Type) 設定項目 内容 Object Rangeオブジェクトを指定 Destination オートフィルの書き込み先のRangeオブジェクトを指定 Type 入力されるデータの種類を指定。XlAutoFillクラスの定数を指定 XlAutoFillクラスの定数 ・xlFillDefault:標準のオートフィル ・xlFillSeries:連続データ ・xlFillCopy:コピー ・xlFillFormats:書式のみコピー ・xlFillVaules:書式なしコピー ・xlFillYears:年単位 ・xlFillMonths:月単位 ・xlFillDays:日単位 ・xlFillWeekdays:週日単位 ・xlLinearTrend:加算 ・xlGrowthTrend:乗算
763 名前:デフォルトの名無しさん [2009/11/28(土) 13:02:02 ] でも書式コピー梨、連続(加算)は出来ないっぽいよ
764 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 16:03:46 ] たぶんそうだよねー オートフィルもExcelマクロっぽくて悪くないと思うから とりあえずオートフィルして書式は別に直すとか
765 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:56:46 ] 質問です。 Excel VBAからワードや他のエクセルファイルの操作ってできますか? やりたいこととしては、VBAを仕込んだxlsファイルに、 置換したい文章を記述し(置換前と置換後をシート内に記述)、 指定したフォルダ内(サブ含む)にあるエクセルファイルやワードファイルに 書かれている文章を変換したいのです。 その際、「この文章を変換しました」みたいなログも出せたら最高なのですが、 いい方法ってありますか?
766 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:58:00 ] yes we can
767 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:10:59 ] >>765 VBAから他のファイルを操作できる ログは画面にだすならmsgboxでいいでしょ フィルに書き出したいならテキストファイルでもオープンして書き出せばよい
768 名前:759 [2009/11/28(土) 20:18:10 ] >>761 >>763 >>764 ご回答、ありがとうございます。 やはりむりですか・・・ オートフィル以外でいくつかつくったのですが、スピードを重視したくオートフィルにこだわっていました。 やりたいことは、A1の値を基にB1:B100までA2で指定された増分値に沿った降順連続データをつくりたかったのです。 考えついたものを下記に貼りますので、改善点やより良いコードがありましたらご教授ください。 宜しくお願いします。 Sub test1() 基準値 = Cells(1, 1).Value 増分値 = Cells(2, 1).Value For i = 0 To 99 Cells(1 + i, 2).Value = 基準値 基準値 = 基準値 - 増分値 Next i End Sub Sub test2() 基準値 = Cells(1, 1).Value 増分値 = Cells(2, 1).Value For i = 0 To 99 Cells(1 + i, 2).Value = 基準値 - i * 増分値 Next i End Sub Sub test3() 増分値 = Cells(2, 1).Value For i = 1 To 100 Cells(i, 2).Value = WorksheetFunction.Sum(Cells(1, 1).Value, Cells(2, 1).Value - i * 増分値) Next i End Sub
769 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:28:08 ] >>767 具体的にはどのようにするんでしょう・・・<ファイル操作 また、AAAという単語はヒットしたので置換したけど、 BBBという単語がない場合、AAAだけ置換したよ、というログとかも取れますか?
770 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 21:01:43 ] Excel VBA WEB連携術って本みつけたんだけど誰かレビューしてくれませんか? ちなみにieを使ったシステムへの自動化を考えてます。 それの助けになるか聞きたいです。
771 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 21:08:53 ] >>770 おし引き受けた! レビュー: 読んだことないけど多分読まないよりましじゃね?
772 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:39:43 ] >>770 何をやりたいのかもうちょっと詳しく 自動化って言えば聞こえはいいけど、よくよく話を聞いてみると たいていは株とかFXとかで楽して儲けたいだけみたいなのが多い
773 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:44:31 ] >>769 例えば、マクロ記録で目的のファイルを開いて、できたブックからシートを自分のシートに移動する で、移動してきたシートをコピーしといて、どちらか一方を置換する あとは置換後に双方を比較して、違う部分を表示するとか 他にも方法は山ほどある まずは自分でアウトラインを固めて、ポイントを絞って質問してくれないと回答しようが無い
774 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:45:54 ] >>772 まぁ株なりFXの自動売買だろ そして、この程度も自分で調べてできない人間はロクなシステム組めないに1000ガバス
775 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:57:41 ] >>773 すいません、大雑把にしか書いてなかったので答えることもできなかったですねorz 仕様としてはこんな感じです。 VBAを記述したExcelに、置換前・置換後を記述したの置換リストをシートとして作成しておきます。 [VBA記述xlsファイル上の置換リスト] 置換前 | 置換後 ------------------ ABC | XYZ log-in | log in login | log in そのシート上にフォルダを指定するセルを用意し、ボタンを押す(マクロ実行)ことで、 指定されたフォルダ(サブフォルダ含む)にあるxlsファイル、docファイルを参照。 ヒットしたファイルの中に、置換リストの置換前と同じ文章があった場合、 ログとして「(ファイル名)▲▲を●●に置換」のような情報を出力し、置換を行います。 うまく纏まっていないかもしれないですが、このような仕様でつくりたいと思っています。 ググってみた感じ、ワードファイルの文章置換を行うロジックはあったのですが、 「本当に置換を行ったか」が取得できなさそうな感じがして・・・。 (▲▲があれば●●に置換する、という処理なので、▲▲がなくても変換せずに処理が終わるはず。変換したか?という状態が取れない感じが)
776 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:06:24 ] このスレはプログラマにとっては有益なスレで クレクレ君には無益なスレです テンプレ参照
777 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:18:29 ] プログラマにとっては有益 ← ここ、笑うところ?
778 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:22:35 ] ゆとりには笑うとこまで指示してやらんと
779 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:30:54 ] OSはXP バージョンは2002です。 単刀直入に聞きます 「ユーザーフォーム上に設置したスプレッドシート」 これをエクセルのシートのように読み込む(ActiveSheet.Range(Cells(1, 1)〜のような書式)ことは可能でしょうか?
780 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 10:31:56 ] >>779 可能
781 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:03:26 ] vistaを使ってると、IE7がプリインストールしてあるためにウェブクエリ取得やIEの操作などが正常に作動しないことがあります。 そこで、windows7にはXPモードがあると聞きました。そのXPモードで使われるIEがバージョン6なのかが気になっています。 IE6を使えるなら早めにwindows7搭載のPCに買い替えるつもりです。どうかお教えください。
782 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:41:08 ] IE6を使える
783 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:46:46 ] まずIEはバージョン6 注意事項としてXP Modeは Windows 7 Professional 以降で搭載される。 一般のメーカー製 Windows 7 プレインストールPCはほとんどが Home Premium でXP Modeは搭載されてないので注意 あと、XP Modeといっても特に他アプリと連携するような場合には 正常に動作するか分からないのでできれば事前にどこかで確認してみることをすすめる おそらく統合機能ってのを使わなければ、ほぼ問題ないとは思うけど、統合機能使わないと XP Mode の利点はあまりないと思うし
784 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 15:05:34 ] バーチャルPC使えよ
785 名前:781 mailto:sage [2009/11/29(日) 17:48:41 ] やはりMSなりに問い合わせたほうが無難なのですね。 バーチャルPCについて調べてみましたが、これならvistaでもxpを動かせるのですね。インストールして試してみます。 ありがとうございました。
786 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:26:51 ] Excelの関数の質問なのですが 入力した数字が6〜10のとき○、11〜15のとき◎ A B 1 6 ○ 2 11 ◎ という風に○や◎を表示させたいのですが、関数がどうしてもわかりません。 どなたかよろしくお願いいたします。
787 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:33:26 ] VBAと関係ないね
788 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 15:52:52 ] すみません、間違えました。
789 名前:デフォルトの名無しさん mailto:sage [2009/11/30(月) 19:19:49 ] Function Maru(n) Maru = "" If (6 <= n) And (n <= 10) Then Maru = "○" If (11 <= n) And (n <= 15) Then Maru = "◎" End Function
790 名前:デフォルトの名無しさん [2009/11/30(月) 22:39:34 ] リストボックスで数値の項目を右詰めにしたいんですが、どうすればよいでしょうか? 2007です。