- 1 名前:デフォルトの名無しさん [2007/12/12(水) 17:27:44 ]
- ExcelのVBAに関する質問スレです
質問前に 【 >>2-3 】 あたりを良く読むこと 前スレ pc11.2ch.net/test/read.cgi/tech/1189814602/
- 713 名前:デフォルトの名無しさん [2008/02/10(日) 16:23:57 ]
- >>704
補聴器買ったほうがいいと思うよw
- 714 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:36:38 ]
- 音は出てないから補聴器買ったところで聞こえようが無い
- 715 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:38:40 ]
- >>713
>>704 には幻聴が聴こえるようだから精神科を薦めた方が良いのでは?
- 716 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:56:47 ]
- そんなにいぢめてやらんでも・・・
- 717 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:02:23 ]
- わかんねーから教習所に通ってんのに、お前らはなんにも教えてくれない自動車教習所の教官。
へたっぴな運転を見てからかってる。
- 718 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:29:04 ]
- >>717
ウェ〜
- 719 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:47:18 ]
- 違うな、教習場に行けばいいのにこんな場末の練習場に来ている阿呆を見に来ている暇人だな。
- 720 名前:>711 mailto:sage [2008/02/10(日) 20:01:51 ]
- やりたい事と合ってるかわ解らんが参考にしとくれ
行を削った後座標がズレるけど良いのか? Sub TEST() For I = 0 To 99 Cells(I + 4, 1).Cut Destination:=Cells(I + 2, 2) Range(Rows(I + 3), Rows(I + 5)).Delete Next I End Sub
- 721 名前:デフォルトの名無しさん [2008/02/10(日) 21:12:35 ]
- 質問です。
例えば、Aの列にはデータを10〜20個入れたとして、 B1にデータ一個を入れます。 このとき、Cの列にはC1=A1-B1、C2=A2-B1・・・というように、 AのデータとB1の差を代入したいと思うのですが、簡単なやり方がわかりません。 確かコピペですいすいいけたと思うのですが・・・ ご教授お願いします。 使ってるのはXPsp1のexcel2002です。
- 722 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:28:24 ]
- >>721
減算で。 Sub test001() Range("A1").Resize(20).Copy Range("C1").Resize(20) Range("B1").Copy Range("C1").Resize(20).PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End Sub
- 723 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:29:34 ]
- For i=startRow To endRow
Cells(i,3).Value=Cells(i,1).Value-Cells(1,2).Value Next つかVBAの質問なの???
- 724 名前:デフォルトの名無しさん [2008/02/10(日) 21:34:29 ]
- >>721
C1に=A1-$B$1 C1の右下つかんで下方向にびろ〜んとする
- 725 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:54:21 ]
- >>722>>723
すいません、理解できませんwww >>724 ありがとうございます〜
- 726 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:09:59 ]
- >>720
ありがとうございます。。 というか自分、何やってんだorz
- 727 名前:デフォルトの名無しさん [2008/02/11(月) 20:33:25 ]
- プログラミングは詳しくないのですが、どなかたご助力下さい。
(質問内容) フォルダ内で「読取パスワードが設定されいてるEXCELファイルを検索する」 どなかた該当の命令文をおしえていただけないでしょうか。
- 728 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:00:10 ]
- DOS窓を表示させないまま、DOS窓のコマンド使って標準出力の内容が欲しい場合ってどうすればいいですか?
Execだとウィンドウ非表示にできないし、Runだと標準出力につなげないんですが
- 729 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:19:36 ]
- >>728
FAQ
- 730 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:55:12 ]
- ぐぐれ
コンソール プロセスを生成して標準ハンドルをリダイレクトする方法
- 731 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:04:03 ]
- KB173085
- 732 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:47:07 ]
- いまだにDOS窓とか使ってるやつおるんかねぇ
- 733 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:13:59 ]
- >>732
GUIがないソフトがあるんで使ってる。
- 734 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:20:00 ]
- DOS窓とコマンドプロンプトは別物
- 735 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:20:53 ]
- と言うか、WinXPにDOS窓って存在するの?
- 736 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:53:06 ]
- >>735
アレを、ほとんどの人はDOS窓と呼ぶのだ。
- 737 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:12:58 ]
- 二つのテキストファイルABを読み取り比較した結果を表示するマクロを作りたい。
Aに行が挿入されてBになっている場合、Aにも挿入した分だけ空白行を入れて表示したいが、いい例はないものか。
- 738 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:21:08 ]
- つ[/usr/bin/diff]
- 739 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:25:56 ]
- Excel VBAスレでその回答はどうだろう
- 740 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:33:00 ]
- 抽象的な質問には抽象的な回答を。
- 741 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:05:52 ]
- W9x Wme の DOS 窓は文字通り DOS 窓って言って良いんだけど
コマンドプロンプトは DOS とは互換性がないからなぁ
- 742 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:08:38 ]
- コマンドプロンプトってDOSのエミュレートじゃないの?
DOSプログラムは、コマンドプロンプトでは動かないの?
- 743 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:12:13 ]
- DOSプログラムも動くからDOS窓でいいじゃん
- 744 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:12:41 ]
- >>271
本尊乙
- 745 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:44:34 ]
- 質問です。
以下のが「スタック領域が不足しています」で通りません。 多分再帰が問題なんだろうけど、よくわかりません。 VistaのExcel2007です If文以降に問題があると思うんですけど… Private Sub Worksheet_Change(ByVal Target As Range) Dim Ein As Integer Dim Fin As Integer Dim Year As Integer Dim Month As Integer Year = Range("C2").Value Month = Range("E2").Value Ein = Weekday(Year & Month & "1", 1) Cells(5, 1 + Ein) = ("1") If Month = 2 Then Fin = 28 Else Fin = 31 End If Cells(10, 10).Value = Fin End Sub
- 746 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:50:08 ]
- >>745
Application.EnableEvents = False Cells(5, 1 + Ein) = ("1") If Month = 2 Then Fin = 28 Else Fin = 31 End If Cells(10, 10).Value = Fin Application.EnableEvents = True
- 747 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:01:08 ]
- >>746
ありがとうございますm(_ _)m おかげさまで解決しました
- 748 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:04:58 ]
- >>742
コマンドプロンプトは純粋なWin32プログラム。 仕様面でDOSの流れを大きく受け継いでいるけど。 コマンドプロンプトの中でDOSプログラムを動かすときには、 NTVDM (NT仮想DOSマシン)でDOS環境をこさえて、 その中でcommand.comを起動し、それから目的のプログラムを実行する。 それ以外だと直接NTVDMから始まるが後は同じ。
- 749 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:45:34 ]
- コマンドプロンプトとDOS窓の区別が付いてないやつはVBAとマクロの区別も付いていない
間違いない
- 750 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:45:26 ]
- >>727
無理せずテンポラリファイルにリダイレクトして読め
- 751 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:45:31 ]
- んなもん、どーでもいい。
- 752 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:24:27 ]
- >>738
それをEXCEL VBAでやりたい。 (UNIXでやれよ、というのは不可)
- 753 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:43:48 ]
- >>752
行が挿入されたものか、一部改変されたものかの判断って、どうやるつもり? 判別の難しさと、それに伴う処理速度考えたら現実的じゃないと思うが。 前後データまで絡める判別はVBでは実用的じゃないし、ロジックの問題なら他スレ行け。
- 754 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:22:17 ]
- >>752
私だったらピボットテーブル使う。 それぞれのテキストをA列に、B列にはどっちのテキストなのかわかる記号を入力しとく。後はわかるでしょ。
- 755 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:34:02 ]
- diffのソース読めばいいよ
- 756 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:21:30 ]
- アドバイス多謝。
>>753 >行が挿入されたものか、一部改変されたものかの判断って、どうやるつもり? 一部改変については、次の行を比較して、一致なら改変、そうじゃなければ挿入と考えるつもり。 (二行改変は考慮しない) 問題は、挿入か削除か。 そのセルを上方検索し、見つかれば削除、でなければ挿入って判断かな。 ロジックってこの板?
- 757 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:47:07 ]
- 他人を巻き込んでダラダラやらずに、diffのソース読んだほうが早いって
- 758 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:14:21 ]
- shell c:\windows\windiff.exe
- 759 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:50:59 ]
- つfc.exe
- 760 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:52:35 ]
- "c:\program files\support tools\windiff.exe" /?
- 761 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:07:24 ]
- 良回答認定>>760
だがスレ違い
- 762 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:57:51 ]
- >>758-760
神認定 と思って報告したら、 「入ってるPCと入ってないPCがある」と言われたorz
- 763 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:26:24 ]
- winmerge
- 764 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:36:29 ]
- cdiff.vbs
- 765 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:41:39 ]
- 2つのExcelファイルをdiffするのをVBAでやりたいのですが?
- 766 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:47:32 ]
- やればぁ?
- 767 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:34:31 ]
- やってくださいよ
- 768 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:25:09 ]
- つc:\program files\support tools\bdiff.exe
- 769 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:52:16 ]
- エクセルの機能にある、「Webページとして保存」ではなく
1.htmlを記述してあるシートをコピー 2.メモ帳に貼り付け、test.txtとして保存。 3.2のtest.txtをtext.htmlに名前を変更。 というような動作をVBAで自動化できるでしょうか。 もし、似たようなことが可能であれば教えてください。
- 770 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:58:33 ]
- できるけどエクセルでやるようなこと?
- 771 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:05:58 ]
- メモ帳を自動化するのはむずかしい
- 772 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:12:24 ]
- セルの内容をそのままファイルに出力すればいいんじゃ?
- 773 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:16:09 ]
- >>769
シートの内容をプレーンテキストに出力して拡張子を.htmlにしたいなら メモ帳なんて使うまでもないが、770も言ってるとおりExcelの仕事じゃない >>2★3,4 >>771 vbsとかで自動化するのは難しいけど VBAというかVB言語ではSendMessage使えるから簡単だよ
- 774 名前:769 mailto:sage [2008/02/16(土) 19:51:14 ]
- ありがとうございます。
具体的な目的を言うと、複数の条件でhtml記述を変化させている シートがありまして、そのhtmlをブラウザでプレビューするのを 先ほどの手順でやっていたのですが、それを簡素ができないものか と思っていたのです。 もう少し考えて見ます。
- 775 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:19:25 ]
- >>772じゃ駄目な理由をまず聞こうか。
- 776 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:02:38 ]
- 簡単なSendMessageを使ってもらおうか
- 777 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:24:27 ]
- 教えてください!
Excel2007のOfficeボタンを非表示にする方法ってあるのでしょうか? マイクロソフトのライブラリを見てもまだ情報がなくて……。どなたかご存知の方ご教授いただけませんでしょうか。
- 778 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:37:44 ]
- Officeボタンとは何かというところから解説してください
- 779 名前:デフォルトの名無しさん [2008/02/17(日) 15:39:09 ]
- OS:XP、Excel2000でワークシート関数を使用したいと思います。
引数にシート範囲ではなくVBAの配列を指定したいのですが そのままでは出来ません。 引数に配列を指定する方法があれば、ご教授願います。 dim a(10) as long dim b as long b = WorksheetFunction.Max(a)
- 780 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:09:12 ]
- >>778様
「Officeボタン」とはExcel2007から追加された、いままでで言う「ファイル」メニューのようなGUIになります。 新しく追加されたGUIのため、Officeボタンのオブジェクトライブラリを操作すれば非表示にすれば良いのか、xmlを編集すれば操作できるのかどうしても判らないんです。 ご存知でしたらご教授戴けると幸いです。 >>779様 動的配列のサマリを計算するメソッドのようなものがあればそれを代用すれば良いのかもしれませんが、 自分には以下のような方法でいつも計算させてしまっています。 Sub subTEST() Dim a(10) As Long Dim b As Long For inCnt = LBound(a) To UBound(a) b = WorksheetFunction.Max(a(inCnt)) Next a End Sub
- 781 名前:デフォルトの名無しさん [2008/02/17(日) 19:13:16 ]
- >>780
ご回答ありがとう御座います。 ただ、そのコードだとa(10)の値がbに入るだけではないでしょうか?
- 782 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 20:41:33 ]
- >>780
なるほど あいにく2003なので力にはなれません でもApplicationクラスのどっかにCommandBarsみたいにあると思うから、 地道に探してみるしかないんじゃ
- 783 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:43:42 ]
- zzって何者?
ヴァッカじゃねーのwww 氏ねよwww チラシの裏でスマソ
- 784 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 15:39:11 ]
- >>781
たまたま>780がmax()の仕様を知らなかっただけだろ。 どうしてもワークシート関数を使いたいなら配列を1要素ずつ処理すればいいと言う点では同意。 max()の場合なら、b = worksheetFunction.max(a(inCnt), b)とでもすれば使える。 # average()なんかはそうはいかないけど。
- 785 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 07:04:05 ]
- 関数の引数にセル位置を「A1」の形式で入れたいとき、
行を変数にはできないんでしょうか? たとえば変数xをSUM関数につかう場合、=SUM(A1:Ax)としてもエラーになりますよね・・
- 786 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 08:08:49 ]
- このすれ頭から読み直せ
- 787 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:53:43 ]
- HYPERLINK関数で質問です。
HYPERLINK関数では、特定の文字を含むリンクは張れないのでしょうか? 現在、HYPERLINK関数を用いたシートの目次を、 マクロで作成しております。 ですが、シート名に記号を含むと参照できないようです。 (@や#などほとんどの記号は駄目ですが、 アンダーバーだけは大丈夫なようです・・・。) しかし、マクロではなく、編集メニューの [挿入]→[ハイパーリンク]から同じシートを指定した場合は、 参照できるようですorz これら2つの操作は全く別物なのかもしれませんが・・・orz --------------------------------------------- <参照できる例> =HYPERLINK("#シート名!A1", "シート名") <参照できない例> =HYPERLINK("#@シート名!A1", "@シート名") Excelのバージョン:2002(10.2614.3311) --------------------------------------------- 参照できない例のようなシート名で、 HYPERLINK関数で参照する方法はありますでしょうか? 何かわかる方がおられましたら、ご助言ください。 よろしくお願いします。
- 788 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 12:29:39 ]
- Officeボタンも知らないヤツが、質問スレで回答側に回ろうとするなよw
- 789 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 13:27:23 ]
- 目先の問題の回答は出来なくても質問の仕方を教えるのはできるだろ
- 790 名前:デフォルトの名無しさん [2008/02/21(木) 19:44:50 ]
- エクセルで計算した数値は少数桁何桁精度なのでしょうか?
- 791 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 19:59:12 ]
- 3桁
- 792 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 20:11:40 ]
- >>790
IEEE 754倍精度はある。
- 793 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:07:20 ]
- Perlについての質問箱スレから誘導されて来ました。
Excel VBAからDOSコマンドを実行することはできますか? 具体的にはPerlスクリプトを実行させて、結果をExcelで受け取って 表示するまでを1クリックで行いたいと思っています。 環境はWindowsXP Home Edition、Excel 2003 です。 よろしくお願いします。
- 794 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:51:57 ]
- >>793
>Excel VBAからDOSコマンドを実行することはできますか? ちょいと命令忘れたができる。 VBAからPing送ったりbatを呼び出したりしたりもできるから間違いない。 >具体的にはPerlスクリプトを実行させて、結果をExcelで受け取って >表示するまでを1クリックで行いたいと思っています。 上の内容を具体的にしたつもりだろうが、上ができたとしてもこちらは関係ないだろ? PerlからExcelにイベントでも起こさせられれば可能。
- 795 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:06:30 ]
- XPにDOSは載ってません
- 796 名前:793 mailto:sage [2008/02/22(金) 01:09:30 ]
- >>794
ありがとうございます。では情報があることを信じて 再びgoogleの海へと漕ぎ出すことにします。 >上ができたとしてもこちらは関係ない 言われてみたらその通りでした。 いつPerlの処理が終わったかExcel側で知る必要がありますもんね。 >>795 すみません、XPではコマンドプロンプトでしたか。
- 797 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:46:04 ]
- >>793
>>728-731
- 798 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:00:35 ]
- active perlはどう?
- 799 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 12:22:22 ]
- >>792
つまり何桁ですか?
- 800 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 20:07:05 ]
- >>792
倍精度の前のIEEE 754って、何を規定した規格の番号ですか?
- 801 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:39:25 ]
- >>800
ググれ 浮動小数点数の規格だ
- 802 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:55:17 ]
- >>800
Excel2000辺りは倍精度だけど、2003辺りからは拡張倍精度になっているから要注意。 前者は10進数で概ね15桁、後者は10進数で概ね19桁の精度があることになる。
- 803 名前:693 mailto:sage [2008/02/23(土) 16:40:39 ]
- 解決したよ。
Origin句を定数xlWindowsから、 Shift-Jisのコードページである"932"へ変更してみたところ 文字化けなく開くことができたのでご報告。 その辺の細かな挙動の違いにだいぶ時間使いました・・・。 今後の何かの参考になれば、ということで、ひとつ。
- 804 名前:デフォルトの名無しさん [2008/02/23(土) 16:45:14 ]
- VBAやEWCELのlog関数で計算して、その答えから逆算してもとに戻してみたら3桁精度しかなかったのです。
精度をあげる方法がありましたら教えてください。
- 805 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:30:23 ]
- 寡聞にしてEWCELなるものは存じ上げませんが、VBAでやってみたということでしたら
ソースをご提示願えませんでしょうか。
- 806 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:44:19 ]
- EXCELの前身のアプリじゃね
- 807 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:11:53 ]
- WinXP+Office 2k7です。
ワークシート上部のいくつかのセルに任意の数値を入力するとそれに基づいて全体が計算されるシートを作りました。 B8というセル(自分で数値を入力する)の値がいくつならセルI818が0になるか、というのを探すためにLoopを使ったのですが、 Dim x As Integer x=0.1 Do x=x+0.0001 Range("B8").Value=x Loop Until Range("I818").Value=0 とやってもI818が0になっても普通に通り過ぎてしまいますorz ひょっとしてワークシート上でI818が計算されるのを待たずにLoopが続いてしまうんでしょうか。。? お知恵をお貸しください
- 808 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:23:28 ]
- お前、小卒か?
整数って意味を知ってるか?
- 809 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:28:32 ]
- あ、integerじゃなくてdoubleでした。
こっちに書くとき間違えた\(^o^)/
- 810 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:33:09 ]
- > B8というセル(自分で数値を入力する)の値がいくつならセルI818が0になるか
自分でマクロ書かなくても、それはExcelのゴールシークを使えばいいのではないかと思う。
- 811 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:36:45 ]
- >>810
うは・・・全然知りませんでした('A`) お手数おかけしました。ありがとうございます
- 812 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 11:00:13 ]
- すれ違いでしたら誘導お願いします。
「マクロを有効化する」を出さずfor文相当の機能を実現しようと思ってます。 直接forは使えないので、富豪的にセルのマスを記憶装置にする方針です。 やりたいことは、以下の状況で 「列Bが「新」の行の数値を抜き出して それをコンマで連結して指定のセル(例えばD100)に入れる」です。 列A 数値(1ずつ増えていく) 列B 「新」「旧」のどちらかの文字 一旦、以下の式をC列に入れて、ドラッグでオートフィルします。 =if(B1="新",A1,"") これはうまく行き、C列には「新規」の行のみに数値が表示されます。 次に、D列の先頭にC1の値を入れます(forの初期条件) 次に「同じ行のC列に値があれば、一つ上のD列の値をコンマで連結」 「同じ行のC列に値がなければ、一つ上のD列の値をそのまま表示」 をforのステップ条件としてD2にかき、D100へオートフィルしようとしたのですが =CStr(D1) & "," & CStr(C2)やCStr(val(D1)) & ..といった式ではうまくいきません。 アドバイス頂けないでしょうか 以上長文失礼しました。
- 813 名前:812 mailto:sage [2008/02/24(日) 11:03:55 ]
- ↑訂正「新規」ではなく「新」ですね
|

|