1 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:07:54 ] ExcelのVBAに関する質問スレです 前スレ pc12.2ch.net/test/read.cgi/tech/1241885130/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
357 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:54:33 ] >>353 何で最近のゆとりは本買わないんだ。 本買え本。 しょーもないサイトを探し回る時間の損失に比べたら、2,3冊の本代なんて安いもんだ。
358 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:42:24 ] 保護をかけた状態でロックを外したセルへの移動が 一部出来なくなってしまいました。 →と←の移動は効くんですが、↑と↓の移動を受け付けてくれません。 ScrollLockやロック外し忘れでは無いと思います。 あと、セルをクリックするとセルの周りに太枠が出るじゃないですか? あれも時々出なくなりました。 この現象が起こるのは今の所1つのブックだけです。 調べてみたんですが、何が原因かさっぱりわかりません。
359 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:44:05 ] 途中で送信してしまったorz 原因分かる人いたら教えて下さい。
360 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 06:36:21 ] レスありがとうございます。 >>354-355 もし仮に目的がVBでないと難しいことが分かっても、VBAで覚えたことは使えると思うので とりあえずこのままVBAを学んでみようと思います。 >>357 確かにそうですね。 今日にでも書店でよさげな本を探してみます。
361 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:16:53 ] ここで本とかを買った人って、何の本買ったのか気になる。 俺は、よく分かるプログラミングVBA 基礎・関数・応用 (大村あつし)の奴を3冊買ったんだけど。
362 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:49:18 ] >>338 シートにイベントマクロをセットする方法がわかりましたのでご参考までに。 みなさまありがとうございました。 セットするマクロ 'チャートシート cost に mouseupイベントをセットする例 Sub mouseup_set() Dim i As Long With ActiveWorkbook.VBProject For i = 1 To .VBComponents.Count If Mid(.VBComponents(i).Name, 1, 5) = "Graph" Then If .VBComponents(i).Properties("Name") = "cost" Then .VBComponents(i).CodeModule.AddFromFile "D:\vbadir\mouseup.bas" Exit For End If End If Next i End With End Sub 'mouseup.bas の内容 Private Sub Chart_MouseUp(ByVal Button As Long, _ ByVal Shift As Long, ByVal x As Long, ByVal y As Long) Dim ElemID As Long, Arg1 As Long, Arg2 As Long ' ここにMouseUp時の処理記述 End Sub 以上
363 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:50:19 ] >>362 忘れた、追記 windows XP, excel2007 です。
364 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:02:16 ] >>362 私本管理のDB見たら、Excel関連だけで\30kは使ってた OS関係やプログラム全般と合わせたら軽く\100kは超えてる 俺プログラマでも何でもない文系人間なのにww
365 名前:デフォルトの名無しさん [2009/08/09(日) 00:27:30 ] aが0.01、bが0.01の状態で、 b=b+a としてセルに代入すると 0.010.01となってしまいます 何がいけないんでしょうか
366 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:12:55 ] >>365 a、bが文字列になってる 数値に変換を
367 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 08:18:40 ] >>361 大村あつしの本は、知識0の人になら僅かな足しにはなるが 他と比べて有用といえる物では無いな
368 名前:デフォルトの名無しさん [2009/08/09(日) 11:35:42 ] sheet1上でマクロを使ってて、sheet2の中の値を取ってくるとき、 わざわざsheet2をアクティベートしてまた戻す、という方法じゃないとだめ? 住所みたいにsheet2;cells(3,3)みたく指定できませんか?
369 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:33 ] セルの値ならmacro4.0うんたらかんたら
370 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:50 ] >>368 Function GetCell(WS As String, row As Long, col As Long) As Variant GetCell = Worksheets(WS).Cells(row, col).Value End Function とかじゃだめなの?
371 名前:デフォルトの名無しさん [2009/08/09(日) 11:52:52 ] >>370 ふむふむ。自作関数使ったことないんですが、やってみます! それから、論理記号の∃(存在)って、for-next文で代替するしかないんでしょうか? たとえば、 If A1からA10の間に100以上の値があれば Then みたいに使いたいんですが
372 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:56:16 ] >>361 パーフェクトマスターとかいうでかい本一冊買ったくらいかなぁ ただ、本分厚すぎて面倒なんで、基本的にExcel内のヘルプに頼ってる。
373 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:34:08 ] >>368 > 住所みたいにsheet2;cells(3,3)みたく指定できませんか? sheet2.cells(3,3)ではあかんの? >>371 はforで代用が一般的だと思う ワークシート関数のMAXとかで一発で済ませてもいいし
374 名前:デフォルトの名無しさん [2009/08/09(日) 13:13:44 ] max(Sheet2.Cells(s, 4) : sheet2.Cells(s+e,4)) でやったらエラーでした。 cellsで範囲指定するのはどうやるんでしょか?
375 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:16:11 ] どこまで続けるんだよ もういいだろ
376 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:19:20 ] >>374 セル範囲の指定はRange worksheetfunction.max(Range(Sheet2.Cells(s, 4),sheet2.Cells(s+e,4)))
377 名前:デフォルトの名無しさん [2009/08/09(日) 13:20:50 ] ありがとうございました。 助かりました。 たぶん10分後にまた何か質問します。
378 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:23:27 ] 少しは自分で考えろw
379 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:30:36 ] セルの指定もできずになぜここに来るかとも思うけれど 他に適当なスレもないしスレ違いすぎってこともないから まあ夏休み中はこんな流れでもいいんでない? なぜなに質問コーナーみたいなかんじで
380 名前:デフォルトの名無しさん [2009/08/09(日) 13:34:30 ] a=inputbox("繰り返しの数") for x=0 to a next x とするとfor文が無視されるんですが、変数をtoの後に持ってくることはできないんでしょうか?
381 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:39:22 ] >>380 できるよ aに1以上の数がはいってれば無視されないはず
382 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:41:27 ] a=inputbox("繰り返しの数") for x=0 to a msgbox x next x でやってみ?無視されてないから。
383 名前:デフォルトの名無しさん [2009/08/09(日) 13:56:44 ] a=inputbox("繰り返しの数") for x=0 to a sheet1.cells(2,2).value=w next x にしても無反応なのであった;; 別の場所に問題あるのかな。
384 名前:デフォルトの名無しさん [2009/08/09(日) 13:57:35 ] wじゃない、xでした
385 名前:デフォルトの名無しさん [2009/08/09(日) 14:03:39 ] もしかして・・・別のsub ... end sub の中でおこなったinputboxの値は有効じゃない!?
386 名前:デフォルトの名無しさん [2009/08/09(日) 14:06:25 ] やべぇ自分で気づいた俺天才!
387 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:07:07 ] >>385 アホwそれを先に言え
388 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:13:33 ] すげえことにきがついた・・・ サブを呼び出すときに変数?に戻る数を入れてやればいいんじゃね・・・?
389 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:54:04 ] 先読み回答しとくと、staticでググレ。
390 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:34:23 ] >>389 そのレスを>>380 の段階で付けられるようになれば神なんだろうなー 俺にはまだまだ無理だ
391 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:24:52 ] で、forが実行されないってのは何よ シートで見たいなら for x=0 to a cells(x.1)=x next とか書かないとわからないぞ
392 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:50:59 ] forが実行されないのは a<0 だからだと思う 例えばaがstring型だとか
393 名前:デフォルトの名無しさん [2009/08/10(月) 00:46:24 ] VBAで作成したCSVファイルを富士通系汎用機(EBCDIC)に送信する ということをやりたいのですが、 日本語全角文字を認識させるために、シフトイン、シフトアウト というコードを全角文字の前後に付与する必要があるらしいのです。 このシフトイン、シフトアウトをVBAでファイルに書き出すことは できるのでしょうか? シフトイン、シフトアウトは、16進数で28H,29Hという記述は見つけたのですが よくわかりません。 知ってる方いらっしゃいませんか? m−O−m WindowsXP、EXCELは2003です。
394 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:52:21 ] 全角絵文字がキモイ
395 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:25:59 ] それより日本語全角文字の文字コード分ってるのか?
396 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 06:42:15 ] ASCIIだろ
397 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 07:26:32 ] まずは、富士通汎用機のCSVファイルを windowsのエディタで開くところから始めるだろjk
398 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 08:20:34 ] コードを出力すること自体は簡単だけど どういう形式で出力すればいいのか質問者がわかってないと答えようがないわな そもそも16進のままどっかに書いとけばいいものなら回答の必要もないだろうし
399 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:29:42 ] >>395-398 ド素人は黙っとけ
400 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:38:20 ] そもそもスレ違いじゃないか?
401 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:00:07 ] バイナリデータをVBAで書きだせるかどうかについては、スレ違いじゃない。 んで、「ebcdic vba」でググってみたら、こんなページがヒットしたわけだが。 ASCII 文字コードと EBCDIC 文字コードとの変換方法 support.microsoft.com/kb/216399/ja
402 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 16:13:03 ] それじゃ日本語全角文字が変換できねーだろ
403 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 16:29:22 ] シフトイン .Write "(" シフトアウト .Write ")"
404 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 18:19:15 ] > バイナリデータをVBAで書きだせるかどうかについては、スレ違いじゃない。 残念、ハズレ VBスレならスレ違いじゃないが 『"E x c e l" VBA』スレでは、残念ながらスレ違い(>>1 参照)
405 名前:デフォルトの名無しさん [2009/08/10(月) 18:53:10 ] WindowsXP、EXCEL2003を使用しています。 シートのA1から下に30個くらい名前が書いてあり、その名前ごとに新しいシートを追加したいです。 こういうのって簡単にできる人には簡単すぎると思うんですが、教えてもらえるとうれしいです。
406 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:03:09 ] 試してないがこうか? sub シート追加() for a = 1 to 30 if cells(a,1) <> "" then sheets.add.name = cells(a,1) next end sub
407 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:32:35 ] 試してないがこの方がいいか? For Each cell In Range(Range("A1"), Range("A1").End(xlDown)) Worksheets.Add(, Worksheets(Worksheets.Count)).Name = cell.Value Next cell
408 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:46:22 ] 試してないけどこうじゃね! Application.DisplayAlerts = False For Each a In Sheets a.Delete Next Application.Save Application.DisplayAlerts = True
409 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:47:29 ] ためせよw
410 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:05:31 ] 試してないけどこれでいけるってビルゲイツが言ってた For Each C In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)) Worksheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = C Next C
411 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:20:12 ] 試したらこれでいけた Sub aaa() Application.DisplayAlerts = False For a = 2 To Worksheets.Count Sheets(a).Delete Next ActiveSheet.Cells.Clear Application.Save Application.DisplayAlerts = True End Sub
412 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:43:20 ] >411 >試したらこれでいけた 試してないけどSheets(a).Deleteはダメぢゃネーノ?
413 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:42:10 ] aは変数なんじゃね
414 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 06:36:51 ] >>410 試してないけど、ここは大丈夫か? Worksheets.Add after:=Sheets(Sheets.Count)
415 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 07:04:26 ] オートシェイプに背景画像を挿入する場合についての質問です。 手動でやる場合、 ・オートシェイプの書式設定 ・塗りつぶし ・色 ・塗りつぶし効果 ・図 ・図の選択 で、画像を挿入した際に、同ページに □図の縦横比を固定する □図形に合わせて塗りつぶしを回転する というオプションがありますが、このオプションをVBAで変更する方法を教えてください。 マクロの記録をしても、変更が記録されずに困っています。 WindowsXP/Office2003
416 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:39:24 ] >413 試してないけどシートのインデックス番号って削除したら前詰めじゃね? Sheets(1).Deleteなら分かる。
417 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:20:16 ] >>414 試してみたら2000では動いた 2003では試してないけど
418 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:50:25 ] >>324 の件ですが、どなたかご教授いただけないですかね・・・?
419 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:04:25 ] >>404 お前は何と戦ってるんだ
420 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:15:24 ] >>418 TCPIPの問題 ブラウザはデフォルトでアドレス変換したりするけどね エクセルでやりたいなら ¥¥PC名¥フォルダ〜 とかにしたら とりあえずググれば解決できる
421 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:17:45 ] >>419 いきなりどうしたの?
422 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:44:49 ] >>420 スレ違いなうえに、適当なことかましてんじゃねーぞ、ボケ
423 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:51:04 ] >>415 Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Rotation = 0#
424 名前:415 mailto:sage [2009/08/11(火) 15:23:47 ] >>423 > Selection.ShapeRange.LockAspectRatio = msoTrue は、 ・オートシェイプの書式設定 ・サイズ ・倍率 ・縦横比を固定する のON/OFFですね。 > Selection.ShapeRange.Rotation = 0# は ・オートシェイプの書式設定 ・サイズ ・サイズと角度 ・回転角度 の指定です。 どちらも目的の物とは全く違うようです。
425 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:22:39 ] >>422 が理解不能なのは俺だけ? 回答なのにスレ違いってなんぞ 適当云々は知らんけど、丁度いいし説明してくれるのかな?
426 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 17:53:16 ] VBA関係ないし、百歩譲ってもTCP/IPの問題じゃないし
427 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:02:11 ] >>425 適当かどうかも判断できないんだったら、黙っとけ
428 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:30:47 ] こういうことかな ebi.dyndns.biz/windowsadmin/2009/03/11/%E3%80%8C%E3%82%A4%E3%83%B3%E3%83%88%E3%83%A9%E3%83%8D%E3%83%83%E3%83%88%E3%81%AB%E7%B9%8B%E3%81%8C%E3%82%89%E3%81%AA%E3%81%84%E3%80%8D-%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B5%E3%83%95/ おい関係ないなら誘導しろよ かいとう者に噛み付くなkzg あと説明もできないなら黙ってろ さっさと市ね ん
429 名前:423 mailto:sage [2009/08/11(火) 19:28:20 ] >>424 ・図の選択 で、画像を挿入した際に、同ページに □図の縦横比を固定する □図形に合わせて塗りつぶしを回転する Excel97だとそういうオプションないんだよな
430 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 21:14:34 ] 言い訳になってねーw
431 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:46:30 ] >424 ヘルプ参照または本屋にスパテク○○系を立ち読みしてくるべし。
432 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:40:26 ] 初心者ですが、質問よろしいでしょうか。 rangeやcellsは、オブジェクトになったりプロパティになったりとするのでしょうか。 私の認識では、rangeはオブジェクト、cellsはプロパティですが、 いろいろなコードを見ると オブジェクトとなったりプロパティになったりしているので ケースバイケースで使えるのかなと思ったのですが、これで合ってるのでしょうか。
433 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:00:35 ] オブジェクトとプロパティの意味を勉強しなおせ。
434 名前:432 mailto:sage [2009/08/12(水) 11:13:26 ] オブジェクト=対象 プロパティ=属性
435 名前:432 mailto:sage [2009/08/12(水) 11:16:34 ] 修正 オブジェクト=構成要素
436 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:37:44 ] なら分かるだろ? >私の認識では、rangeはオブジェクト、cellsはプロパティですが、 その認識が間違い。 Rangeに変数が使えないとかCellsでは1セルor全セルしか指定できない などの制約によって使い分けてるだけ。
437 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:47:33 ] >>436 その説明もおかしいだろw
438 名前:432 mailto:sage [2009/08/12(水) 12:17:09 ] すいません。。。 勉強しはじめたばかりで。
439 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 12:35:00 ] >>436 Range("A" & i).Valueとかよく使うよ 手元のVBA辞典だと Rangeはオブジェクトとプロパティ Cellsはプロパティ 実例でいうと Range("B2").Cells(2, 2).Activate Range("B3").Range("B2").Activate と書けるが Cells(3, 2).Range("B2").Activate とは書けない
440 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 12:39:43 ] Range("B3").Range("B2").Activate は オブジェクト.プロパティ.メソッド
441 名前:432 mailto:sage [2009/08/12(水) 12:47:08 ] 439さん ありがとうございます! VBA辞典買います。 ずうずうしくもうひとつ質問です。 Worksheets("sheet1").Cells(i,5).Value この場合 コレクション.プロパティ.プロパティ でしょうか。
442 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:27:02 ] Cells.selectは?
443 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:27:52 ] コレクションはオブジェクトの集合体 Worksheets("sheet1")はオブジェクト Worksheetsはコレクション 実例 Worksheets.Count Worksheetsコレクションに含まれるWorksheetsオブジェクトの数
444 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:29:18 ] プロパティで取得できるものが、オブジェクトだったりそうでなかったりするんだ。 rangeプロパティもcellsプロパティもrangeオブジェクトを取得できる。 rangeのcountプロパティはlongを返す。 >Cells(3, 2).Range("B2").Activate 書ける。 コレクションもオブジェクトだコラ。
445 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:43:14 ] Cells.selectのCellsは、Cellsコレクション >444 Cells(3, 2).Range("B2").Activateって書けたね、スマソ >コレクションもオブジェクトだコラ それはそうだが、 コレクションはCountできるが、オブジェクトはCountできないし オブジェクトにNameはあるが、コレクションにNameはない
446 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:46:21 ] /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
447 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 14:13:24 ] >>445 お前もう何も書くな
448 名前:432 mailto:sage [2009/08/12(水) 14:18:12 ] なるほど。 勉強になりました。 ありがとうございます。
449 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:52:27 ] >>445 マジなのかジョークなのか、判断に苦しむ。
450 名前:デフォルトの名無しさん mailto:age [2009/08/12(水) 17:49:21 ] はじめまして LineInputでファイルを一行づつ読み込みたいのですが 読み込みたいファイルがUNIXのファイルなんで改行がLFとなり一行と認識してくれません。 一行ごとに読みたいのですが何かいい方法ありますか?
451 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:06:22 ] >>450 変数に読み込んでからvblfで分割がいいのでは?>>215 あたりを参照
452 名前:デフォルトの名無しさん [2009/08/12(水) 20:54:40 ] ワークシートを呼び出すとき、 Sheet1のようなオブジェクト名で呼ぶのと、 Sheets("名前")で呼ぶのとでは、 動作が異なる場合がある?なぜ? Sheet1(名前は"テスト"): Sub test(X As TestType) MsgBox X.a End Sub 標準モジュール: Type TestType a As String End Type Sub test() Dim X As TestType X.a = "ほげ" Call Sheet1.test(X) '動く Call Sheets("テスト").test(X) '動かない End Sub なるべくシート名を使いたいのだが…
453 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:56:02 ] >>452 詳しい人が来るまでの繋ぎに気付いた点をレスすると シート名と言ってもオブジェクト名としてのシート名と表示上のシート名は多分別物で VBEで「sheet1(うんじゃらげ)」の前半が多分オブジェクトとしてのシート名。 プロパティーウィンドウから変更できた気がするようなしないような。 質問のケースへの対応なら 表示上のシート名からインデックス番号を取得してそれを使うのが早いかな?Byなんちゃって回答者
454 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:09:47 ] >>453 ありがとうございます、 Sheet1と書いたのはオブジェクト名としてのシート名、 Sheets("テスト")は表示上のシート名です。 オブジェクト名もプロパティウィンドウから変更できるのを いま知ったので、今後はオブジェクト名だけを使えば解決、だけど、 ここまで全部、表示上のシート名で書いてきたから変更がめんどいのと、 上記の動作が異なるメカニズム自体を知っておきたくなって。
455 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:52:17 ] Sheet1はクラス、Sheets("sheetname")はWorkSheetオブジェクト
456 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:10:33 ] 又、オブジェクト指向の話かww
457 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 00:05:49 ] >>455 だと、なんで>>452 のようになるの?