1 名前:デフォルトの名無しさん [2007/12/12(水) 17:27:44 ] ExcelのVBAに関する質問スレです 質問前に 【 >>2-3 】 あたりを良く読むこと 前スレ pc11.2ch.net/test/read.cgi/tech/1189814602/
880 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 00:01:10 ] >>878 WScript.exeを参照設定しろー
881 名前:デフォルトの名無しさん [2008/03/03(月) 00:45:53 ] >>880 ありがとうございます。 WScript.exeを参照し、Windows Script Host(Ver5.6)を参照設定に加えたのですが やはり同じエラー出ました。 参照の問題では無さそうなので、設定も含めた他の部分をもう一度見直して見ます。 >>879 当然質問前に検索したのですが、WScriptの参照設定について記述されたページが見つからなかったもので・・・。 すみませんでした。
882 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:15:50 ] Win32 APIのSleep関数を使えばいいじゃない。
883 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 01:22:50 ] >>878 それって、Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)じゃいけないの?
884 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 10:54:00 ] 自分が過去に作ったソースをよく探すんですけど、 Excelファイルが散在してるし、開いてからAlt+F11を押す手間とか効率悪いです。 GoogleDesktopSearch用Excel VBAプラグインってないもんですかね?
885 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:52:08 ] 別にプラグインじゃなくてもブックファイルからVBAを抽出するだけでもよさそうな。 まぁ、そういうものがあるかどうかって話になるけど。
886 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:59:12 ] >>885 VBAのコードは、マクロでファイルにexportできるから、作ろうと思えば比較的簡単に作れる。 ただし、そのexportしたものがGDSでIndexingされるかどうかは、別の話。
887 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:43:25 ] こう? officetanaka.net/excel/vba/vbe/index.htm 保存するとき拡張子に.txtを追加してあげればいいよね。 とりあえず何とかなりそうな気がする。どもども。
888 名前:できたよん mailto:sage [2008/03/03(月) 18:53:27 ] VBAソースをいっぺんに吐き出すマクロ(Excel2003) 準備 ・A列にファイルリストを作る 参考:ttp://www.vbalab.net/vbaqa/data/excel/log/tree_199.htm ・ツール→マクロ→セキュリティ→信頼できる発行元 のVBプロジェクトへのアクセスを信頼するをON ext(1) = ".bas": ext(2) = ".cls": ext(3) = ".frm" Set xl = CreateObject("Excel.application") xl.Application.Visible = True xl.AutomationSecurity = msoAutomationSecurityForceDisable 'マクロ無効 For i = 1 To 9999 bookName = Cell(i, 1) If bookName = "" Then Exit For Set bk = xl.Workbooks.Open(bookName, False, True) With bk.VBProject.VBComponents For j = 1 To .Count If .Item(j).Type <= 3 Then _ .Item(j).Export bookName & "_" & .Item(j).Name & ext(.Item(j).Type) & ".txt" Next End With bk.Close SaveChanges:=False Next
889 名前:デフォルトの名無しさん [2008/03/04(火) 12:34:14 ] すいません。KILLの使い方が分かりません。 たとえば、BOOK1のファイルごと、削除したいのですが どうゆうコードで書いたらいいのですか?
890 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:41:43 ] killはファイルを消すときに使う
891 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 13:15:20 ] kill "your.xls"
892 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:57:42 ] Kill "BOOK1.*"
893 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 11:30:59 ] 質問させてください。 .value = "hogeの値は" + hoge + "です" の表記をしたいのですが、""テキストと、変数を並べて表記する方法が分かりません。 +で結合ではありませんでした。 VBAでのテキストと変数の表記方法を教えてくださいませ。
894 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 12:00:21 ] >>893 VBの文字列結合は &
895 名前:デフォルトの名無しさん [2008/03/05(水) 12:44:58 ] Private Sub CommandButton1_Click() Kill "BOOK1.*" End Sub book1のファイルのコマンドボタンでこれを実行すると、ファイルが みつからないとエラーだでてしまうのですが・・・ ファイルをかっこよく消したいです。
896 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 13:14:45 ] >みつからないとエラーだでてしまうのですが・・・ かっこわりw もしかして、ワイルドカードが使えないんじゃないの?
897 名前:デフォルトの名無しさん [2008/03/05(水) 13:17:44 ] *←これでしょ? でも使えないの・・・
898 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 14:18:02 ] * これを見るだけでなんか恥ずかしくなってしまうよな
899 名前:デフォルトの名無しさん [2008/03/05(水) 14:42:21 ] 違うの?
900 名前:デフォルトの名無しさん [2008/03/05(水) 15:30:35 ] すいません、ExecuteExcel4Macroで、ループを使わずに 一気に範囲データを読み込むことは出来ないのでしょうか?
901 名前:デフォルトの名無しさん [2008/03/05(水) 17:00:06 ] Dim d(100,100)AS Douale3Dim rng AS Range rng=Range("A1:C3") このrngから配列dに行列を入れ替えて代入する方法がわかりません。 どのようにすればよいでしょうか?
902 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 17:06:38 ] Excel VBAとかマジわかんないけど If ActiveCell.Column <> 1 Then Exit Function End If じゃだめなの?
903 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 17:29:47 ] >>901 訂正します。 Dim d(100,100)AS Double Dim rng AS Range rng=Range("A1:C3") d=(double)Transport(rng) ↑ このrngから配列dに行列を入れ替えて代入する方法がわかりません。 どのようにすればよいでしょうか?
904 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 20:34:08 ] >>900 おれも尻鯛
905 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:17:08 ] >>900 まずはどうしてもループが使えない事情があるなら説明してみろ 単に使いたくないとか時間が掛かるとかなら帰れ
906 名前:900 mailto:sage [2008/03/05(水) 21:19:31 ] >>905 お前に言う必要は無い。 わからないならレス不要
907 名前:900 mailto:sage [2008/03/05(水) 21:38:46 ] 自己解決しました。 お前らマジ役立たず
908 名前:900 [2008/03/05(水) 21:39:40 ] なんだか偽者出てるみたいですが、900です。 >>905 ループで一度データをコピーするプログラムを作成したのですが、 開始から終了までかなり時間がかかってしまうことが分かりました。 処理時間を軽減できないかと考えて、範囲ごとコピーできないかと考えた のが理由です。
909 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:43:04 ] 縦横変換したものを一旦シートに貼り付けて、それから変数に代入しろ
910 名前:デフォルトの名無しさん [2008/03/06(木) 02:28:41 ] >>900 速度向上のためにはSelectするな!withを使え! Rangeで取り込んで配列に一括取り込み。
911 名前:デフォルトの名無しさん [2008/03/06(木) 02:32:43 ] >>903 まず型変換して代入で可能 d=CDbl(rng) あと行列逆転はFor〜Nextで1セル毎にループでできるが、一括でできる方法はないかな?
912 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 08:45:45 ] 速度気にするなら、まずExecuteExcel4Macroでやろうってのが間違いだと気付け
913 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 09:06:42 ] >>908 ExecuteExcel4Macroなんか使って読みにくく、また他に使い途もないコードを書くより、 ADO使って"SELECT * FROM [Sheet1$]"みたいにやった方が、将来的に考えて 色々と応用できて幸せになれる確率が高いぞ
914 名前:900 mailto:sage [2008/03/06(木) 09:50:11 ] 御回答ありがとうございます。 ExdcuteExcel4Macroは使わない方針でいってみたいと思います。
915 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 09:59:52 ] >>911 >>909
916 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 10:11:06 ] Publicで宣言したプロシージャを ツール→マクロ→マクロとメニュー選択した際のダイヤログボックスに 表示させない方法があったと思うのですが、 どうやればいいでしょう????
917 名前:初心者 [2008/03/06(木) 11:40:13 ] 初歩的な質問かと思いますが、可能な限り過去の書き込みを検索しましたが、解決できませんでしたので、質問させていただきます。 A1からA10に数値の値が入っているとします。 もしこのA1からA10までの値がすべて0だったら、○○というプログラムを実行する、というマクロを組みたいと思っています。 If Worksheets("Sheet1").Range("A1:A10") = 0 Then Call ○○ End If というふうに自分では作ってみたものの、うまくいきません。 アドバイスの方よろしくお願いします。
918 名前:デフォルトの名無しさん [2008/03/06(木) 15:42:25 ] >>915 シート作成は速度の関係上できるかぎり避けたいのです。 関数やプロパティで行列を逆に入れ替える方法はないでしょうか?
919 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 15:47:34 ] >>918 計測してから物を言え。
920 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 16:12:20 ] >>917 dim i as integer for i = 0 to 9 if worksheets("sheet1").range("a1")..text <> "0" then exit for next if i == 10 then call *** end if
921 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 16:13:18 ] あ、思いっきり間違ってた。 if worksheets("sheet1").range("a1")..offset(i,0).text <> "0" then exit for が正解。
922 名前:デフォルトの名無しさん [2008/03/06(木) 16:47:13 ] >>919 シート作成するのが通常よく使うよね。 VBAではあまり速度を問われないことがおおいから。 私もそうですし他の方法しか教えられない。 >>918 気長にVBAスペシャリストを待ちましょう。
923 名前:919 mailto:sage [2008/03/06(木) 16:53:13 ] スペシャリストの俺に喧嘩売ってんのか?
924 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 17:02:20 ] 取りうる方法は三つしかない。 ・行列を変換しながら1セルごと配列にコピー ・rangeを配列にまるごとコピーした後に、行列を変換しながら別の配列に代入 ・行列を変換して別のシート(同じシートでもいいが)にコピーしてから、rangeを配列にコピー 実行する内容や量やExcelのバージョンやPCのスペックによって変わるから、 自分で測って一番速い奴を使え。
925 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 17:24:23 ] んなこたーない。 dim rng as range dim d as variant set rng = worksheets("sheet1").range("a1:c3") d = application.worksheetfunction.transpose(rng)
926 名前:デフォルトの名無しさん [2008/03/06(木) 18:43:57 ] 教えて先生!! あたしシートの追加をしたいのぉ Sub Macro1() Dim unko As String unko = "ウンコ" Sheets.Add ????? End Sub 変数名を取得して、その変数名をシート名としたシートを追加したいというかぁ リネームじゃなくて、ダイレクトに追加できればいいなぁとおもうの。 エロイ人おしえてーー。
927 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 20:07:32 ] >>901 dがVariant型でよければ、 d = WorksheetFunction.Transpose(Range("A1:C3")) でdには縦横入れ替えた2次元配列が格納される。
928 名前:927 mailto:sage [2008/03/06(木) 20:10:40 ] よく見たら>>925 でがいしゅつじゃねーか。
929 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 20:38:03 ] >>916 そういう時は、dummyで使わない引数をプロシジャの()の中にセットする様にしているけど邪道か?
930 名前:デフォルトの名無しさん [2008/03/06(木) 21:14:07 ] >>925 dim rng as range dim tmp as variant dim d as double set rng = worksheets("sheet1").range("a1:c3") tmp = application.worksheetfunction.transpose(rng) 最後に forループで tmp(i,j)からCDbl(d(i,j))に代入しました。 かなり速度が改善しました。 ありがとうございました。
931 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 21:15:09 ] クラスを書く習慣を付ける
932 名前:916 mailto:sage [2008/03/06(木) 22:26:58 ] >>929 問題なしです!ありがとうございました!
933 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 23:06:52 ] >>895 book1を開きながらbook1ファイルは削除できまい。 あと、book1は何処に保存してあるのか。
934 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 00:08:32 ] >>931 誰に言ってるの? 必要ならつけりゃいいが、必要ない場合もある。 たとえばシートモジュールでMe.なんてウザイだけ。
935 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 00:24:40 ] >>934 何だよヴォケ! クラスを明示するの当たり前だろ? >>925 みたいなコードもブックから明示してないからまだまだだね。 ブックの上のApplicationも明示しないとね。
936 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 03:21:54 ] 相手の欠点はよくみえるが自分の欠点はみえないんだよ。 こどもじゃあるまいし、書いてることをそのまま実行したりはしないよ。 ヒントがわかれば十分。
937 名前:926 mailto:sage [2008/03/07(金) 05:40:25 ] うぅ・・・分かる方、いらっしゃいましたらhelpです・・・>< もしくは、追加→リネーム の方法がベストなのでしょうか。 bookを開いてから、何枚のシートを追加したかの監査変数を使う事が避けられれば理想なのですが・・。 皆さんどのようにしているのかも興味があります。 何卒よろしくお願いします。 お礼にこれあげます。>+(
938 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 07:08:02 ] >>937 sheets.Add().name="ウンコ"
939 名前:938 mailto:sage [2008/03/07(金) 07:12:38 ] >>937 試してみたら()も省略できた sheets.Add.name="ウンコ"
940 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:30:45 ] >>937 一応マジレスしておくと、質問するならふざけるな。 ふざけないで質問してたらきっと即レスついたはずだ。
941 名前:895 [2008/03/07(金) 09:04:48 ] 933さんありがとうございます。 >あと、book1は何処に保存してあるのか。 これは、C:\Documents and Settings\xxx と指定すればいいのでしょうか?
942 名前:895 [2008/03/07(金) 09:17:12 ] それと、例えば、エクセルのファイルネーム”あ”.xlsのファイルにパスワード を設けて(例えばパスワードは10)他の人に勝手に開かれないようにしてるのですが 人のPCのデータを除き見るやから達からデータを守る為、パスワードの入力を 例えば3回失敗したらファイルごと、どこのディレクトリに合っても強制削除したいのですが どうコードを書いたらいいのでしょか?
943 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 10:34:01 ] 自分自身のマクロでそれをするのは無理。
944 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 11:05:26 ] >>935 おろ? 君は>>925 と>>931 じゃなかったの? 似たようなこといつも言ってるMougの馬鹿を一人知ってるんだが。 ってか彼はうるさい割にはいつもシートからしか明示しないがね。
945 名前:925 mailto:sage [2008/03/07(金) 11:16:26 ] なんだか知らんけど、俺を巻き込まないでくれ・・・
946 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 13:19:45 ] 質問です。私の持っているVBA本に 「同一モジュール内に同名の行ラベルを設置できない」 って書いてあったので、検証しようと思い以下のサンプルコードでテストしました。 ' プロシージャ「p1」 Public Sub p1() On Error GoTo ErrHandler Err.Raise 10 Exit Sub ErrHandler: Debug.Print "エラー発生@" End Sub ' プロシージャ「p2」 Public Sub p2() On Error GoTo ErrHandler Err.Raise 10 Exit Sub ErrHandler: Debug.Print "エラー発生A" End Sub 同一モジュール内にプロシージャ「p1」も「p2」も「ErrHandler:」という行ラベルを設置していますが、 それぞれの「On Error GoTo」はきちんとプロシージャ内の「ErrHandler」へ処理しています。 これってどういう事なんでしょう? 私の持ってるVBA本が間違っているのでしょうか???
947 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 13:46:18 ] >>946 はい、その通り間違っているので、書名を公開してみんなが不幸せになるのを防ぎましょう。
948 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 20:56:10 ] マクロの中で自分のファイル名(フルパスで)を取得するにはどうすればよいですか?
949 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:02:21 ] thisworkbook.pathとname
950 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:29:13 ] >>942 Sub hoge() Dim a As String Dim w As Object Dim v As Object a = ThisWorkbook.Path & "\" & ThisWorkbook.Name Set w = CreateObject("WScript.Shell") Set v = w.exec("cmd.exe /c del """ & a) Application.Quit ' Do Until v.stdout.atendofstream ' MsgBox (v.stdout.readline) ' Loop End Sub
951 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:47:43 ] >>950 それ、マクロ無効にすると開けちゃうから。
952 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 23:48:02 ] 「クラスを書く習慣をつける」って書いたの俺なんだけどさ(>>935 じゃない) 別件(Public云々)にレス付けたつもりだったんだが、曲解した挙げ句に意味不明な粘着を発揮してるキチガイが居るな なんだよ「Mougにホゲホゲ」ってよ 見えない敵が見えてる系のキチガイの考えることはマジで分からんw > 934 名前: デフォルトの名無しさん [sage] 投稿日: 2008/03/07(金) 00:08:32 > >>931 > 誰に言ってるの? > 必要ならつけりゃいいが、必要ない場合もある。 > たとえばシートモジュールでMe.なんてウザイだけ。 > 944 名前: デフォルトの名無しさん [sage] 投稿日: 2008/03/07(金) 11:05:26 > >>935 > おろ? > 君は>>925 と>>931 じゃなかったの? > 似たようなこといつも言ってるMougの馬鹿を一人知ってるんだが。 > ってか彼はうるさい割にはいつもシートからしか明示しないがね。
953 名前:デフォルトの名無しさん [2008/03/08(土) 00:04:09 ] Excel2003 XP SP2 ブックを非表示にして、フォームをタスクトレイに常駐させてタイマー処理は実装可能でしょうか? 教えてエロい人
954 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 04:24:55 ] YES
955 名前:944 mailto:sage [2008/03/08(土) 04:39:19 ] >>952 とぼけても無駄無駄w お前はMougでも感じ悪いけどこっちでも感じ悪いな。
956 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 05:04:10 ] NO
957 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 08:28:43 ] とぼけてるのがいるなw
958 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 12:35:40 ] 見えない敵と戦う聖戦士がム板にも湧いてきて、粘着してくるとは思わなんだわ 悪いことは言わないからMougとやらで聖戦に興じてろや 釣りにしてもキモすぎるし、真性だとしても治療に付き合う義務はない
959 名前:デフォルトの名無しさん [2008/03/08(土) 15:06:06 ] アクティブじゃないシートの選択しているセルの値ってとれないでしょうか? シート名が特定できれば、一旦アクティブにして値をとって戻るとか出来るのですが いろいろなシート(名)を対象に出来るようにと思っています よろしくお願いいたします
960 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:48:31 ] >>958 いらんおせっかい書くからだよ。 つまらん自説を述べるから粘着される。
961 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 23:07:05 ] VBEで挿入できるものに、ユーザーフォーム、標準モジュール、クラスモジュールの3つがあるけど、 クラスモジュールだけ使ったことがない。これってどういう時に使うもんなんです? Excel2002ですけど。
962 名前:デフォルトの名無しさん [2008/03/08(土) 23:37:13 ] そのまんまクラスを書くモジュール VBAだと継承ができないんで、独自イベントを実装したいときとか、 構造体代わりに使うとか、コントロール配列を実現させたいときに 使うぐらいしかないけどね(^ω^;)
963 名前:961 mailto:sage [2008/03/09(日) 08:10:28 ] んんん、、、判らん w スマソ まだ俺のレベルでは必要ないって事すかね www
964 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 10:25:51 ] ExcelVBAごときにクラスなんかいらん
965 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 10:39:07 ] strategy patternを使いたいときとか
966 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 15:28:15 ] コントロール配列を実現させたいとき=継承 だったと思うから 「継承代わりに使いたいときだけ」 しか使わん
967 名前:デフォルトの名無しさん [2008/03/09(日) 18:58:31 ] CSVの書き出しに関して、教えてください。 EXCELデータを、カンマ区切りの改行コードつきCSV形式で書き出したいのです。 ↓このような感じ 項目1,項目2,項目3,改行コード(vbcrlf)項目1,項目2,項目3・・・ print # でコード記述 データの最後は改行コード(vbcrlf)で終了しなくてはいけないのですが、 そうすると当然のことですが、最後に余分な空白行ができてしまいます。 改行コードで終了するが、最後の空白行はなくす、ということは可能なのでしょうか? 「もう。無理です・・・」と泣きを入れてみたのですが、なんとかしろ、 とのお達しがあり、もし、良い方法があれば伝授いただければ助かります!! 宜しくお願いします。
968 名前:エスパー君登場 mailto:sage [2008/03/09(日) 19:20:08 ] 最後に余分な空白行が出来ているというのは気のせい。
969 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:26:29 ] 「余分な空白行」というのは、CRLFCRLFのことだが、もしファイル末尾がそうなっているとしたら、 それはコードのバグ。 ファイルの末尾がCRLFで終わっているなら、余分な空白行など存在しない。
970 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:58:51 ] ぐぐれ 最後の改行 vb
971 名前:デフォルトの名無しさん [2008/03/09(日) 20:08:08 ] ありがとうございます 「EXCEL VBA 改行コード」で検索していたのですが、 良い方法を見つけることが出来ず、悩んでいました。 頑張って挑戦してみます
972 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 20:55:39 ] 最後の改行と余分な空白行というのは違う意味だと思う
973 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:06:19 ] >>971 ちょっと待て。何をどう挑戦するつもりなんだ?
974 名前:側近中の側近 ◆0351148456 [2008/03/09(日) 21:56:06 ] (っ´▽`)っ EOF直前の改行は本来必要なものと考えるが。 たまにEOF直前の改行がないテキストファイルを見るが、あれはどうなの? ちなみにviだとエラーメッセージが出るぞ。
975 名前:側近中の側近 ◆0351148456 [2008/03/09(日) 22:01:32 ] (っ´▽`)っ??? >>967 のいう「余分な空白行」ってこういうことだよね? "aaa\r\nbbb\r\nccc\r\n"(\r\nは改行コード) これを "aaa\r\nbbb\r\nccc" にしたいってことでしょ?多分。 「『なんとかしろ、』とのお達しがあり」 ってあるけど、その「なんとかする」理由は何だろうね? 何もないのに言ってるなら、その人にもうちょっと勉強しろって言いたいんだけどね。
976 名前:側近中の側近 ◆0351148456 [2008/03/09(日) 22:02:33 ] (っ´ω`)っ おもいっきりスレ違いだね いきててごめんね
977 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:01:20 ] 「余分な空行」という夢オチ
978 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:18:21 ] CSVファイルはRFC 4180の仕様だと、 最後のレコードの後には改行はあってもなくてもいいらしい。 オレの場合は最後のレコードの後には必ず改行付けるけどね。
979 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:25:11 ] 975のようなテキストをメモ帳か何かテキストエディタで開いたとき、 aaa bbb ccc I ← ここにカーソルが移動できる ということを「最後に余分な空白行ができてしまう」と言っているんだと思った。 だとしたら、それは最後にCRLFを置いているからだとしか言いようがない。
980 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:26:00 ] excel2003 xp 他のシートの複数セルのSetの仕方がわかりません。 Dim Rng AsRange Sheets("sheet2").Activate Set Rng = Range(Cells(1, 1), Cells(2, 2)) Sheets("sheet1").Activate Set Rng = Nothing こう書けば一応動くのですがWithを使い With Sheets("sheet2") Set Rng = Range(.Cells(1, 1), .Cells(2, 2)) End With と書いてもsheet1のA1: B2が入ってしまいます。 よろしくお願いします。