[表示 : 全て 最新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/

610 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:36:51 ]
>>608
clsUserAのプロパティでInstancingをPublicNotCreatebleに設定しろ

611 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:56:42 ]
>>610
それは違うエラーが出たので昨日の時点で直しました。

クラスをやめて構造体にしてみたら
パブリックオブジェクトモジュールで定義されてないと云々・・・

何この中途半端な言語・・・。

612 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:35:20 ]
本当に解決してほしいのなら、エラーが発生する、検証可能な最低限のコードを「全て」書け

613 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:54:48 ]
>>608
ところで、Sheet1クラスに定義したGetData( ) を
Worksheet型で宣言したオブジェクトから呼ぼうとしてるのだとしたら大笑いなんだが、
そこは大丈夫? (要するに sheetClassList の変数の型が分からないんだが)


614 名前:608 mailto:sage [2008/01/30(水) 17:55:22 ]
そのものをうpしてみた。
up01.ayame.jp/up/download/1201683170/attach/%E5%B7%A5%E7%A8%8B%E8%A1%A8.lzh
PASSは prog

開いたときの真ん前にあるCommand1を押すと問題のポイントでエラーになります。
成功すると正面の表が変化するはず。

615 名前:608 mailto:sage [2008/01/30(水) 17:57:44 ]
>>613
シートにプロシージャを定義してあって、
標準モジュールから呼んでます。
もしかして大笑いコース??

616 名前:608 mailto:sage [2008/01/30(水) 18:02:44 ]
さっき配置変更して別のシートから呼んでました。
紛らわしくてすみません。
どっちにしても動きは同じですが。

617 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:12:07 ]
>>614
再現手順を書け、アホ

とりあえず
Public Sub GetData(idx As Long, item As clsGantClass)
にしたら、コンパイルエラー(呼び出せない)のは無くなった

618 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:13:35 ]
>>608
ちょ、お前な。 ステップ実行で確認するくらいしろよ!
自分の意図してる場所のセルのデータが、ちゃんと取れてるかどうかと、
代入しようとしている構造体のメンバの変数型が合ってるかどうか。話はそれからだ。

ソース見る限りでは、Variantじゃなくて、クラスを指定しても動くと思うよ。
⇒ Public Sub GetData(idx As Long, item As clsGantClass)




619 名前:617 mailto:sage [2008/01/30(水) 19:15:01 ]
すまん、再現手順は書いてあったな。

ただ、ボタンをクリックしてもエラーは発生しないぞ?

620 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:16:21 ]
>>610が原因だったが、あれこれやってるうちに、何がなんだかわからなくなったと見た。

621 名前:608 mailto:sage [2008/01/30(水) 19:35:28 ]
エラー出ないですか・・・。
sheetClassListはどこか書き換えたんでしょうか?
いまだ動きません。

ほかのマシンで動かしてみようかなぁ

622 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:42:38 ]
Me.Cells(idx + 1, 1)がLongじゃない。
以上。


623 名前:618 mailto:sage [2008/01/30(水) 19:44:43 ]
>>621
え? ちょっと待て。何が分からないの? うpしてくれた .xls でいいんだよな?
直さなきゃいけないトコ、普通に分かるだろ。

あと、気になるのは、1度動かすと、sheetClassList.Count の値がぶっ飛ぶ。(ゼロになる)


624 名前:608 mailto:sage [2008/01/30(水) 20:04:14 ]
わかりました○| ̄|_

CellはRaw:2から読まないとだめでしたね・・・(0+1=1 "id"読んでました)
GetDataの内部の行ではなく、呼び出しの行がエラーになったために、その部分ばかりこだわってました。
ありがとうございました。精進します。

625 名前:618 mailto:sage [2008/01/30(水) 20:18:34 ]
>>624
精進してください。 ちなみに、さっきザッと眺めた限りでは、あと変数型さえ直せば動くと思うよ。


626 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:21:01 ]
おまいら釣られすぎ。
流れ変えようと>>514が質問を始めたな。
何が組み込み屋だよwww

627 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:24:29 ]
それならそれで乗ってやりゃ済む話だろ。 どんだけ粘着なんだよ。キモイやつだな。


628 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:37:18 ]
>>626
流れをぶった切って申し訳ないが無関係なんで・・・。
組み込み屋馬鹿にスンナヽ(`Д´)ノ



629 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:51:38 ]
それよりzzって相当生意気な香具師だな


630 名前:デフォルトの名無しさん [2008/01/30(水) 22:44:34 ]
質問です。
配列を一気にboolean型のtrueで初期化する方法はありますか?
Dim hairetu As booleanです

631 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:06:31 ]
OSはWindows XP、Excelは2002です。
エクセルに関しては、授業で習った程度の事しか出来ません。

エクセルのVBAでゲーム作成の課題が出て、マインスイーパを作ってみようと思ったんですが。
全てのボタンをトグルボタンで作ろうとすると、凄く重くなります。
更に一個一個のボタンにコードをいちいち打たなければならないので、
もし出来たとしてもやはり使い物にならなくなると思います。
コードをすっきりさせるやり方で、何か良い方法はありませんか?
お願いします。

632 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:45:53 ]
>>630
APIでメモリ操作
>>631
セルをボタンにみたてたら?

633 名前:デフォルトの名無しさん [2008/01/31(木) 00:11:47 ]
632さん
ネットで調べたのがよくわかりませんでした。
どーいうことなのですか?


634 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:15:10 ]
>>632
それも最初考えてみたんですが…。
マインスイーパでいう、ボタンをクリックすると文字が表示されるという動作と、
ボタンに爆弾の印を付けるという動作をさせるやり方が見つからなくて…。
セルの中の値を非表示にして、クリックなどの動作で其れを表示させるというやり方が
可能なのでしょうか?

635 名前:デフォルトの名無しさん [2008/01/31(木) 09:50:20 ]
>>634
workbookのsheetchangeでいちいち全セルのvalueを見回るようにするとか
どっちにしろ重くなるけど

636 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:03:14 ]
コントロール配列とかでイベントプロシージャ共有じゃだめなん?
サブクラス化して変数持たせないと呼び出し元識別できないっけ?

637 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:24:13 ]
>>635
>>636
コントロール配列が出来るなら…何とか出来るかもしれません。
どちらも自分には難しそうですが、またちょっと調べて作ってきます。
すいません、有難う御座います。

638 名前:デフォルトの名無しさん [2008/01/31(木) 21:27:29 ]
ワークシートにファイルからオブジェクトを挿入し
同時に同じファイルにハイパーリンクを設定するマクロを作っています。

ひとまずマクロの記録をして、それを元に作成しようと考えたのですが、
記録したものを実行すると2行目、3行目でエラーが出てしまいます。
(改変したものでもエラーが出ます)

2行目はオブジェクトを挿入すると"=EMBED("○○","")"という数式?が追加されるので
それを削除する工程です。

明日までには処理完了させねばならないのですが、何が問題なのか御教示下さい。

Sub Macro()

ActiveSheet.OLEObjects.Add(Filename:="C:\test.pdf", Link:=False, DisplayAsIcon:=False).Select
Selection.Formula = ""
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:="C:\test.pdf"

End Sub




639 名前:デフォルトの名無しさん [2008/02/01(金) 11:16:45 ]
複数あるフォームのひとつを変数扱いで表示することは可能でしょうか。
下のサンプルのようなことをやりたいのですが
「オブジェクトはこのメソッドをサポートしてません」と出てしまいしまいます。
(UserForm1は勿論つくってあります)
myForm+ピリオドでShowメソッドが出てこないので、ダメなのは解っているのですが。。

Sub sump()
Dim myForm As UserForm
Set myForm = New UserForm1
myForm.Show
End Sub


640 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:48:31 ]
>>639
UserForm と UserForm1 はベツモノのクラスだよ。Control と Textbox みたいな親子関係。
変数の型を UserForm1 にしてやればおk。


641 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:07:20 ]
>>640 できました
UserForm1型があるなんて知りませんでした。
親(userform)に子(userform1)を代入、みたいに考えてました・・
ありがとうございます。

642 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:26:35 ]
>>641
フォーム型のクラスを継承するイメージかな。
当然、フォームの(オブジェクト名)を変更すると、クラス名(変数型)も変わるよ。

一旦、オブジェクトを作成してから、userform型に userform1を代入するのは間違いじゃない。
userform1、userform2・・・と型が増えたときに、userform に代入すれば、どれでも操作できる。
Control と Textbox、Label、Combobox・・・ の関係と似たようなもんだよね。


643 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:51:24 ]
>>642
639=641です
userform1型を使うのはできましたが、これだと
myform変数にuserform2を代入できないことがわかりました。(型が違うため)
このような場合どうしたらよいでしょうか。
>userform1、userform2・・・と型が増えたときに、userform に代入すれば、どれでも操作できる。
このやり方を知りたいのですが。(繰り返しですみません)

644 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:00:34 ]
643です
たびたびすみません、object型を使ったらできました!
これで合ってるでしょうか。

645 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 14:25:37 ]
>>644
↓こういう作りになってれば、少なくともエラーにはならないと思うんだけど・・・?(Excel2000)
 Dim a As UserForm1,  Dim b As UserForm2,  Dim c As UserForm
 Set a = New UserForm1
 Set b = New UserForm2
 Set c = a
 Set c = b
Object型は、なるべく使わないに越した事はないよ。ダメだという意味じゃないけど。


646 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:32:34 ]
>>645
やってみましたが、c.Showでエラーになってしまいます。
(メソッドをサポートしません)

647 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:08:12 ]
>>646
あー、そういう意味か。
申し訳ない、代入した後は、代入した先の変数型の持ってるメンバしか使えないよ。
Control 型に、ラベルやチェックボックスを入れても.Caption を設定できないのと同じこと。

>myForm+ピリオドでShowメソッドが出てこないので、ダメなのは解っているのですが。。
仰るとおり、Userform 型は、.Show() をサポートしていない。
異なるクラスで、共通のメソッドを呼びたいなら、Objectを使うしかないです。
あるいは、インターフェイス用のクラスを作って Implements する方法があるけど、
フォームに使うのは怖いので、特に事情が無い限りはやめた方がいいと思います。


648 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:43:27 ]
>>647
了解です、今回はobjct変数でやることにします。
(やりたいことはメッセージ代わりのフォームを打ち分けたいだけなので)
何度もお手数をとらせ申し訳ありませんでした。




649 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:54:14 ]
VBってオブジェクトと初期インスタンスの名称が同じだって所が半端な感じだよね

650 名前:デフォルトの名無しさん [2008/02/03(日) 16:39:17 ]
os:xp
excel:2003

VBAで指定列からAを検索し、発見したら隣のセルに0を入れるマクロを組みたいのですが、組み方がVBA初心者の為わかりません。
(例)
L列に、A、B、C、D、E、Fとランダムに文字が入っていて、
文字Aを検索し、発見したら隣のI列に値0を入れるというマクロです。

Sub Search()
Dim A As String
Set A = Worksheets("Sheet1").Cells.Find("A")
If A Is Nothing Then
ActiveCell.Offset(0, 1).Value = 0

End If
End Sub
と自分で考えてみたのですが、Aがあった時、、、、
とコードが書けないです。
大変困っているので、ご教授頂けないでしょうか?
長文失礼しました!



651 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:19:53 ]
突っ込みどころが多すぎ
全部に突っ込むの面倒なので正解書いておく

Sub Search()
 Dim A As Range
 Set A = Worksheets("Sheet1").Columns("L").Find("A")
 If Not A Is Nothing Then
  A.Offset(0, 1).Value = 0
 End If
End Sub

うわ、プロシージャ宣言やEnd Ifなど、間違いようのない部分以外、全部間違ってるじゃんw

652 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:35:44 ]
notつけろの一言だけで済む話を教えたがりはこうやるわけだ

653 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:53:17 ]
>>652
not付けました

実行結果は以下の通りです┐(´ー`)┌


---------------------------
Microsoft Visual Basic
---------------------------
コンパイル エラー:

オブジェクトが必要です。
---------------------------
OK ヘルプ
---------------------------


654 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:44:54 ]
For n = 1 to 3 step 1
msgbox ("n

nを表示したい場合はmsgbox ("n
このあと何するのか分かる人いたら教えて下さい

655 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:57:25 ]
msgbox ("n")


656 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:52:03 ]
msgbox n


657 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 03:34:18 ]
("n")バーカ

658 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:38:43 ]
>>657
pc11.2ch.net/test/read.cgi/tech/1197881068/276



659 名前:デフォルトの名無しさん [2008/02/05(火) 10:49:33 ]
標準モジュールから、ユーザーフォームのテキストボックスに、
文字を表示させるにはどうすればいいでしょうか
以下では、ダメでした。

Sub test()
If Range("A1").Value = 1 Then TextBox1.Value = "ぼぼぼぼぼぼ"
End Sub

660 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:22:30 ]
だから、どうダメだったか位書こうぜ。
つーか、エラーメッセージくらい自力で理解しろよ。

661 名前:659 [2008/02/05(火) 11:39:17 ]
それが分かったら来ませんがな・・(´・ω・)

モジュール間で値渡し?しなければならないというのは
何となく分かるのですが、textbox1の「change」とか「enter」とか
どこに記述すればいいのかも分からず、現在に至っております。

662 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:49:56 ]
>>661
エラーメッセージは出ませんでしたか?
恐らく、>653のようなダイアログが出たと思うのですが。
それを見ても何も理解できないようなら人間やめた方が宜しいかと。

663 名前:659 [2008/02/05(火) 11:55:57 ]
>>662
textbox1 の変数が定義されていません と出ますね。
いちおう、フォームでtextbox1は作っているんですよ。

664 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:41:37 ]
>>663
標準モジュールに記述してるんだったら、
Range("A1").Value にしろ TextBox1.Value にしろ、未定義扱いになると思うが?
(どこに属するオブジェクトか判断できない。明示的に指定されていない。)


665 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 12:48:53 ]
シートから実行してしまうと、Rangeの方は未定義にならない罠。

666 名前:664 mailto:sage [2008/02/05(火) 12:55:45 ]
>>665
うを、ホントだ。素で知らんかった。Activesheetを拾うっぽいね。 どうもありがd。


667 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:56:32 ]
>>664
その定義方法がですね、textboxから、プロシージャをcallする場合は
分かるのですが、この逆になると、textboxのchangeなのかenterなのか
keydownなのかどこで定義したらいいのか・・・そもそも不可能なのか・・

668 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:10:50 ]
>>667
イベントプロシージャを使うつもりなら、どのイベントで処理するか決めるだけじゃないの?
つか、どういう動きをさせたいの?




669 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:11:31 ]
>>667
もしかして、フォームのプロシージャから標準モジュールをサブルーチンとして使いたいのか?
だとしたら、フォーム自身なりテキストボックス自身をそのtest()に渡してやればいい。
やりたいこととやっていることの説明くらいできないようじゃ、先が思いやられるけどね。

670 名前:デフォルトの名無しさん [2008/02/05(火) 15:14:50 ]
お付き合い頂き感謝します。
標準モジュールから、ユーザーフォームのテキストボックスを呼び出して、
なおかつそのテキストボックスに任意の文字列を表示させたいです。

テキストボックスのプロシージャから、標準モジュールを呼び出すのは
何とかできるのですが、逆がどうしても出来ません・・

671 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:18:49 ]
面倒だから、全ての自作オブジェクトの一覧と全てのプロシージャの一覧出しちゃえよ。
状況説明できない馬鹿にいくら聞いても説明しても無駄だって判ったからさ。

672 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:21:08 ]
>>670
いや、だから・・・
何かしらの処理が実現できない、っていう相談じゃなくて、コードの書き方が分からんってこと?

標準モジュールに記述したプロシージャは、どこかから呼ばれるまでは処理が走らない。
その前提の上で、特定のフォームの部品を扱いたいなら、○○(Userform名).Textbox1
例えば、デフォルトのオブジェクト名であれば、Userform1.Textbox1.Value でアクセスできる。
TextBox1.Value だけでは対象が分からんからエラーになる。 単にValue とだけ書くようなもん。


673 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:24:36 ]
うぜーーーー

Sub foo()
  UserForm1.TextBox1.Text = "abc"
  UserForm1.Show
End Sub

674 名前:672 mailto:sage [2008/02/05(火) 15:29:26 ]
>>670
あー、ごめん、よく考えたら 672の書き方じゃ絶対に分からんな。
まずはフォームの実体を取得しなきゃならんので、どこかから呼び出されるのを前提で、
”基本的には”標準モジュールのプロシージャに引数として処理対象のオブジェクトを渡すか、
フォームのインスタンスを作るトコから全て標準モジュールの処理で書かないといけない。


675 名前:デフォルトの名無しさん [2008/02/05(火) 15:39:12 ]
>>972-974
でけた^^
コードの書き方の問題なのかも分かりませんでした・・orz
ありがとうございました!

676 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:40:29 ]
感謝まで明後日の方向向いているよ。どうしようもねぇな。

677 名前:672 mailto:sage [2008/02/05(火) 15:42:12 ]
ワロタw


678 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:44:13 ]
>>674
なんか勘違いしてない?
インスタンス化はアクセスされると自動的に行われるよ?



679 名前:672 mailto:sage [2008/02/05(火) 15:55:59 ]
>>678
勘違い、つか、VBが特殊な使い方ができるだけで、
インスタンスを作ってから使うのが基本だと俺は思ってるから、自然とそういう書き方になった。
複数のインスタンスが持てないわけでもなし、何故突っ込まれるのかが分からんが。


680 名前:672 mailto:sage [2008/02/05(火) 16:00:40 ]
>>678
あ、スマン、書き込んでから言いたい事が分かった・・・。確かに、勘違いしてるように見える。
申し訳ない。


681 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:04:15 ]
少なくとも、VBA/VB6では、規定のインスタンス(暗黙のインスタンス化)を使うのが、
まぁデフォですので・・・。

682 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:16:38 ]
Windows XP + Excel 2000SP3です。

MouseWheel Fixをアドインマネージャに起動時/ロードで設定すると、VBEを開こうとすると
「インストールの準備中」のダイアログが出て先に進みません。

ただ、なぜだかその状態で一度Excelを終了させてすぐに起動すると、そのダイアログが
終了してVBEが立ち上がるようになります。

「起動時/ロード」を設定せずに、Excel起動後にロードしようとしても、やはり最初の一回は
「インストールの準備中」から先に進みません。

何か、解決法はあるでしょうか?




683 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:40:58 ]
自作のDLLをDeclareで参照して使うと、Excelを終了させないとDLLがアンロードされないみたいなんですが、
強制的にDLLをアンロードするにはどうすればいいですか?

684 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:57:04 ]
>>683
日本語訳はヘンテコなんでこっちで。

PRB: Loading and Unloading DLLs in the Design Environment
ttp://support.microsoft.com/?scid=kb%3Ben-us%3B129514&x=14&y=13

685 名前:≠683 mailto:sage [2008/02/05(火) 17:17:18 ]
つまり、Declare宣言を編集しようと試みると強制的にアンロードされるってことでいいのかな?

686 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:36:25 ]
>>685
Declareの"r"を削除して行を離れると、強制コンパイルされてDLLがアンロードされるから、
その行に戻って"r"をタイプして元通りにしろってことね。

687 名前:デフォルトの名無しさん [2008/02/05(火) 23:14:50 ]
i = 3

Do While Cells(i, 1) = "東京"
If Range(i, 10) = 1 Then
Range("i" & Columns.Count).End(xlUp).Value = st4 & st5
st1 = Range(i, 8)
st2 = Range(i, 9)

With ws2.Range("A" & Rows.Count).End(xlUp)
.Offset(0.1) = st1
.Offset(0.2) = st2

End With

i = i + 1
Loop

恐れ入ります。
A列3行目から”東京”となっている間ずっと、
もしその行の10列目が”1”であるなら”1”の一つ右の行を確認、
空白だったらST4とST5の文字列を貼り付ける。空欄でなかったらさらに一つ右の行を確認・・・(ループ)
さらにST1、ST2の文字列を貼り付け・・・
というのをループさせたいのですが、

”1”の一つ右の行を確認、空白だったらST4とST5の文字列を貼り付ける。空欄でなかったらさらに一つ右の行を確認・・・(ループ)
の部分がよく分かりません。また、実行してみてもLOOPに対するDOが無いとのエラーになってしまいます。

おばかな質問で恐縮ですが、よろしくお願いします。



688 名前:デフォルトの名無しさん [2008/02/05(火) 23:33:09 ]
i=i+1の前に end ifがいる。



689 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 06:52:49 ]
>>682
そんな現象なったことないが、原因分かんないならVectorとかで同種のソフト拾ってきて使えば?
もしくはExcelを再インストールして様子見るとか

690 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:48:27 ]
>>682
他のアドイン機能はちゃんと動作するのか確認して、異常がないようなら
MouseWheel Fix を一旦登録解除(クラスライブラリ)してから、再登録してみたら?


691 名前:682 mailto:sage [2008/02/06(水) 10:50:25 ]
>>689,690
コメントありがとうございます。

他のアドインは正しく動きました。また、MouseWheel Fixをregsvr32 /uして再登録してみたんですが
状況が改善しませんでした。

いろいろと検索していると、同種のアドインが見つかりましたので、それを試してみたらうまく
動作しているようなので、とりあえずはこちらを使うことにします。

AddAutoScroll for VB6/VBE6
ttp://homepage1.nifty.com/mtj-k/software/addautoscroll_vb6.html

692 名前:デフォルトの名無しさん [2008/02/06(水) 11:30:49 ]
OS vista
excel 2007

Dim i As Integer
Dim x(10), y(10) As Single
For i = 1 To 10
x(i) = i
y(i) = i
Next
Cells(1, 1).Value = Application.WorksheetFunction.LinEst(y, x)

linest関数を使いたいのですが、試しに上記のようなプログラムを作成したところ
肝心のlinest関数のところで「linestプロパティが取得できません」とエラーがでます
基礎的な間違いをしてる気がするのですが、どうかアドバイスをお願いします


693 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:53:18 ]
  'テキストファイルを開きます。
  Workbooks.OpenText Filename:=strFileName, _
    Origin:=xlWindows, _
    StartRow:=2, _
    DataType:=xlDelimited, _
    TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, _
    Tab:=False, Semicolon:=False, Space:=False, Other:=False, _
    Comma:=True, _
    FieldInfo:=Array( _
      Array(1, 2), Array(2, 1), Array(3, 2), Array(4, 2), Array(5, 2), _
      Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), _
      Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 1), Array(15, 1), _
      Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 2), Array(20, 2), _
      Array(21, 2), Array(22, 2), Array(23, 2), Array(24, 2), Array(25, 2), _
      Array(26, 1), Array(27, 2), Array(28, 2), Array(29, 2), Array(30, 2), _
      Array(31, 2), Array(32, 2), Array(33, 2), Array(34, 2), Array(35, 2), _
      Array(36, 2), Array(37, 2), Array(38, 2), Array(39, 2), Array(40, 2) _
    )


上記処理にてWinXP SP2 Office2003 SP3環境では問題なくシート表示するのですが、
WinXP SP2 OfficeXP (SP状態は不明です)の環境では文字化けして表示されます。
化けるフィールドとしては2バイト文字のところで、
テキストファイルとしては半角カナも全角漢字も混在のCSVで
改行コード、文字コードはCRLFのSjisです。

原因と対策がよくわからなくて困っております。
何かご存知でしたら教えていただければ、と思います。
よろしく頼みます。



694 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:28:21 ]
>>692
xの配列を渡さずに ~.LinEst(y) と書いたら動くから、パラメータの与え方が違うのかな?
スマンが使った事が無いので、識者を待つか、ヘルプを見れ。
ttp://office.microsoft.com/ja-jp/excel/HP100698381041.aspx?pid=CH100645381041


695 名前:692 [2008/02/07(木) 07:29:16 ]
すみません。
ただの宣言ミスでした。

Dim x(10) as single, y(10) As Single
としたら動きました。
>>694
どうもありがとうございます。
聞く時はもっと気を付けてからにしようと思います。


696 名前:デフォルトの名無しさん [2008/02/07(木) 12:10:10 ]

激しくスレ違いかもしれませんが、質問です。

PCゲームを多重起動しようと試みたのですがダメでした。
大抵のゲームはWindowsのアカウントを2つ作成し、別々のアカウントで起動すれば問題ありません。

現在、Vistaを使っているのでXPではどうなるかはわかりませんが(XPは右クリックから別ユーザーで起動が可能)、
Vistaでその手法をとる場合、runasコマンドを使用することになります。
しかしこのコマンドで別々に起動しても、後から起動したほうが無効になってしまいました。

で、ここからがわけわかめなのですが、同一のデスクトップからの起動はダメでも、
Windowメニュー→ユーザー切り替えをし、別々に起動すればうまくいきました。

この違いはいったいなんなのでしょうか?
 

697 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:28:40 ]
RMTでもやんのか?

どちらにしても激しくスレ違いだから帰れ。

698 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:43:46 ]
激しくスレ違いまで読んだ



699 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:06:37 ]
激しくまで読んだ

700 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:02:52 ]
sageがないので読んでない

701 名前:デフォルトの名無しさん [2008/02/09(土) 15:17:19 ]
Base64でファイル添付してメールを送りたいのですが、その方法があれば教えてください
CDO.Messageを使ってQuotedPrintableでの送信はできています

702 名前:デフォルトの名無しさん [2008/02/09(土) 15:29:15 ]
本文に追加すればいいことじゃないの

703 名前:デフォルトの名無しさん [2008/02/09(土) 15:36:00 ]
某エクセルスレで、以前に聞いたが全く回答の反応なしだったので、
ここでも、あまり、適切な話題ではないかもしれないが教えてくれ。
2002 + XP VBAマクロ、ドロップダウンリスト入力セル、関数式埋め込みセルが
あり、各ブックの大きさは700K〜2M程度の5つの同種類のブックを作ったのだが、
ブックによって、左下のステータスバーに(通常コマンドと表示されているところ)
が、セル移動で「再計算」が表示されるものと、「再計算」は表示されないものとの
2通りあるようになった。selection_changeイベント等求めている機能はいずれも
正常に動いている。

皆、コマンド、入力の表示のみで、再計算表示がされないようにしたいのだが、
どうしたらいいですか。


704 名前:701 mailto:sage [2008/02/09(土) 16:03:05 ]
>>702
Excelでソケット通信も含めて自作しろといってるようにしか聞こえないが

705 名前:デフォルトの名無しさん [2008/02/09(土) 16:32:41 ]
某エクセルスレで、以前に聞いたが全く回答の反応なしだったので、
ここでも、あまり、適切な話題ではないかもしれないが教えてくれ。
2002 + XP VBAマクロ、ドロップダウンリスト入力セル、関数式埋め込みセルが
あり、各ブックの大きさは700K〜2M程度の5つの同種類のブックを作ったのだが、
ブックによって、左下のステータスバーに(通常コマンドと表示されているところ)
が、セル移動で「再計算」が表示されるものと、「再計算」は表示されないものとの
2通りあるようになった。selection_changeイベント等求めている機能はいずれも
正常に動いている。

皆、コマンド、入力の表示のみで、再計算表示がされないようにしたいのだが、
どうしたらいいですか。


706 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:34:13 ]
>>704
最近のメーラは添付ファイルがアイコンなんかで表示されたりして隠蔽されて
いるけど,昔は送りたいバイナリをテキストにエンコードして文字通りメール
本文の下に貼り付けてましたよ。
↓こんなイメージ

-------ここから------------------------
encoded by なんちゃらかんちゃら
risdgfniefngoenogfaenogengopenoanongoneogneoagnoengea
fbwhibfiwbfiwbfiwbfiwbfibwibfiwbfiwbfiwbifbiwfbiwbfiw



707 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:48:29 ]
OS XP、Offce 2003
A1には半角英数字のみが入ってるとします。
このファイルには複数シートがあり、全シートにA1には違う文字列があります。
各A1の文字や文字数はシート毎にバラバラですが、半角英数字は変わりません。

質問としては、各シートのA1内に入っている半角大文字のみ
それぞれのシートB2に出力するのは可能?可能ならばヒントをお願いしたい
です。

708 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:19:57 ]
>>707
・セルA1内の文字列を取得する
・大文字があるか検索する
・文字列を組み立てる
・セルB2に設定する
・それらを全てのシートについて行なう



709 名前:デフォルトの名無しさん [2008/02/10(日) 15:33:57 ]
リテラルの中に、"(ダブルクォテーション)を含めるには、
どう書けば良いのでしょうか?



710 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:50:51 ]
””






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

前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