[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 04/22 19:53 / Filesize : 149 KB / Number-of Response : 514
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Excel VBA質問スレ Part12



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のようになるの?






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

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

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