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


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

Excel VBA質問スレ Part5



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が入ってしまいます。
よろしくお願いします。






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

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

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