前のログ | 次のログ |
No.4000 RE:MSChartについての質問 投稿者:花ちゃん [02/3/04(月)14:20分]
X軸のラベルを横書きにしたいのなら、文字数を少なくするか、フォントを小さくして
表示位置に収まるラベル名にする必要があります。
表示範囲外の長い文字数ですと自動で縦書きになります。(通常2〜4文字位)
フォントサイズを変更するには MSChart関係の基本設定を見て下さい。
No.3999 RE:Changeイベントの抑制 投稿者:しらい [02/3/04(月)10:31分]
NAO★さんK.J.K.さん 今回も ありがとうございました。
No.3998 MSChartについての質問 投稿者:かん [02/3/04(月)9:20分]
皆様、はじめまして。
新米PG屋のかんです。
仕事で、MSChartを使った折れ線グラフを作ってみたのですが、
どうにも分からないことがあるので教えてください。
【RowCount=16、ColumnCount=1500】の折れ線グラフを作成しました(表示が重いです)。
そこで、ColumnLabel(X軸のラベル)を150データごとにグラフ下部に表示したかったのです。
しかし、ラベルが縦書き(頭を左肩にくっつけてディスプレイを見ると横書き)になり、
とってもカッコ悪いんです。
つまり、質問とは、このX軸のラベル(デフォルト:C1とかのやつ)を
横書きにしたいって事なんです。
一応、花ちゃんさんのMSChart関係(サンプル含む)を見せて頂いたのですが、
どうにも解答が見つかりません。
(もし私の見落としだったらゴメンなさい)
どうか哀れな子羊に愛の手をよろしくお願い致します。
No.3997 MSHFlexGridの列幅を変更時のイベントを取得したい 投稿者:Tarou [02/3/03(日)1:29分]
お世話になります。
MSHFlexGridの列の幅を変えた時にイベントを取得したいと思っておりますが、
そのようなイベントはあるのでしょうか?
もし、ない場合どのような手法で同じことを実現できますでしょうか?
どなたかお分かりになる方、ご伝授いただけると幸いです。
よろしくお願いいたします。
No.3996 パスの取得について 投稿者:かず [02/3/02(土)15:31分]
NAO★さんの方法でうまく行きそうです。 ありがとうございました。
No.3995 re:パスの取得について 投稿者:NAO★ [02/3/02(土)15:16分]
>二週間前に初めてパソコンを購入して勉強しているのですが
2週間でこんなことまでやっているのですか?
すばらしいですね。
開いたブックと同じフォルダーからというなら
MyPath = ThisWorkbook.Path
か
MyPath = ActiveWorkbook.Path
でいけるでしょう。後者のほうがお薦めかな?
RE:というのは「返信」を意味します
No.3994 パスの取得について 投稿者:かず [02/3/02(土)14:50分]
早速の回答ありがとうございます。
ただ、この方法だと結果が
C:\Documents and Settings\Owner\Application Data\Microsoft\Excel\XLSTART\
になってしまい、C:\Documents and Settings\Owner\My Documents\海鮮厨房
にはなりませんでした。
二週間前に初めてパソコンを購入して勉強しているのですが、難しくてよくわかりません。
初心者向けのガイドブックなどを探しても沢山ありすぎて迷ってしまいます。
お勧めの参考書などがありましたら教えてください。
それと、vbaには直接関係ありませんけど、
このホームページで質問の回答に付いている、RE:って何ですか?
何か特別の理由とかあるのでしょうか?
No.3993 RE:VBからExcelへデータ表示のさいの質問です 投稿者:花ちゃん [02/3/02(土)14:47分]
>VBからExcelにデータを吐き出すときに
>Excelの列をそれぞれGROUP化したいのですが
>VBのソースでExcelの列をGROUP化させることはできるのでしょうか?
この Excelの列をそれぞれ”GROUP化” とはどう言う事なのでしょうか?
Excel ではA列、B列 等GROUP化? されていますが
多分この意味が理解できないので回答がないのでは?
又、半角カナは使わないようにしましょう!
No.3992 RE:パスの取得について 投稿者:花ちゃん [02/3/02(土)13:59分]
エクセルの起動フォルダーを取得したいのなら
Application.PathSeparator これではなく Application.StartupPath これだと思います
Application.PathSeparator は \ を返します。
Public Function fMyPath() As String
'プログラム終了まで MyPath の内容を保持
Static MyPath As String
'途中でディレクトリ-が変更されても起動ディレクトリ-を確保
If Len(MyPath) = 0& Then
MyPath = Application.StartupPath 'ディレクトリ-を取得
'ルートディレクトリかの判断
If Right$(MyPath, 1&) <> "\" Then
MyPath = MyPath & "\"
End If
End If
fMyPath = MyPath
MsgBox "パス セパレーター: " & fMyPath
End Function
No.3991 RE:印刷用紙の設定について 投稿者:花ちゃん [02/3/02(土)13:24分]
用紙サイズを下記にされましたか?
その他、給紙装置等矛盾した設定になっていませんか?
Printer.Height=12247
Printer.Width=17577
No.3990 RE:印刷用紙の設定について 投稿者:けんいち [02/3/02(土)13:09分]
お返事ありがとうございます.
Printer.Height に変えたら少しは進歩しました.
とはいっても,記述が無視されなくなったためか,
プリンターが「準備中」となってしまっただけではありますが・・・
サイズについては,プリンターの対応範囲に入っているようです.
No.3865についてですが,
職場で新しい用紙を追加しようとしたら怒られました・・・
No.3989 パスの取得について 投稿者:かず [02/3/02(土)13:05分]
C:\Documents and Settings\Owner\My Documents\海鮮厨房 の中に
複数のエクセルブックを登録しています。
マクロでパスを取得して、起動したエクセルと同一内のフォルダーから他の
ブックをオープンしたいのですが、¥マークしか取得できません。
コードは次のとおりです。
Public Function fMyPath() As String
'プログラム終了まで MyPath の内容を保持
Static MyPath As String
'途中でディレクトリ-が変更されても起動ディレクトリ-を確保
If Len(MyPath) = 0& Then
MyPath = Application.PathSeparator 'ディレクトリ-を取得
'ルートディレクトリかの判断
If Right$(MyPath, 1&) <> "\" Then
MyPath = MyPath & "\"
End If
End If
fMyPath = MyPath
MsgBox "パス セパレーター: " & Application.PathSeparator
End Function
これは、このホームページで検索した方法ですが、 MyPath = App.Path の所が
エラーになってしまうのでMyPath = Application.PathSeparator に直しています。
os エクセルともにxpを使用しています。
No.3988 RE:印刷用紙の設定について(追記) 投稿者:花ちゃん [02/3/02(土)11:50分]
>Printer.ScaleHeight=216
>Printer.ScaleWidth=310
↓
Printer.Height=216
Printer.Width=310
これも影響しているかも
エプソン LP-800 PM-3300C ではどちらの設定でもエラーにはなりませんが
間違った設定は、無視されるようです。
ユーザー定義サイズでも指定できる範囲がきまっているようです。
プリンターのプロパティで確認して下さい。
ちなみに LP-800では
90mm〜215mm × 148mm〜355mm の範囲です
No.3987 RE:RE:印刷用紙の設定について 投稿者:花ちゃん [02/3/02(土)9:59分]
>Printer.ScaleHeight=216
>Printer.ScaleWidth=310
用紙サイズが 3.8mm × 5.5mm になっているからかも
下記で一度試して下さい
それでだめなら最新のドライバーにしてみるとか過去のログ No.3865を試してみるとか
With Printer
.PaperSize = vbPRPSUser 'ユーザー定義サイズ
.Height = 56.7 * 216 '縦寸法(必ずtwip単位で設定)
.Width = 56.7 * 310 '横寸法
End With
No.3986 RE:印刷用紙の設定について 投稿者:けんいち [02/3/02(土)9:05分]
お世話になります.
>ここの(左にフレーム)印刷関係をまず見てください、
申し訳ありませんでした.
おかげさまで,基本的なところについてはつくることができたのですが,
ユーザー設定で用紙のサイズを設定しようとしているのですが,
うまくプリンターに値を渡すことができず,プリンター側で「用紙サイズ不一致」とでてしまいます.
プリンターは富士通のXL-5730というレーザープリンターですが,
プリンタードライバーの問題かと思い,調べましたが,ホームページには特に何も記述がありませんでした.
以下のように記述したのですが,
何か間違い,足りない記述などはありますでしょうか.
Printer.PaperSize=vbPRPSUser
Printer.ScaleMode=6
Printer.ScaleHeight=216
Printer.ScaleWidth=310
Printer.Print
---印刷内容---
Printer.EndDoc
No.3985 Re:タブキーでのフォーカス移動制御 投稿者:ゆう(U) [02/3/02(土)8:57分]
> TabIndexプロパティを実行時に変更するとか。
移動させる部分のTabStopのみTrueにするとか。
テキストボックスを「コントロール配列」にしても
良いかも・・・
No.3984 RE:タブキーでのフォーカス移動制御 投稿者:花ちゃん [02/3/01(金)21:34分]
Private Sub Text3_LostFocus()
Text1.SetFocus
End Sub
Private Sub Text6_LostFocus()
Text4.SetFocus
End Sub
これでも一応可能ですが?
Shift + Tab の場合は一工夫必要ですが
No.3983 Re: タブキーでのフォーカス移動制御 投稿者:K.J.K. [02/3/01(金)20:29分]
TabIndexプロパティを実行時に変更するとか。
No.3982 Re:ユーザー定義型の「動的配列」の要素数を取得 投稿者:Kuma [02/3/01(金)18:19分]
ゆうさん へ
早速のご回答ありがとうございます。
参考になりました。
早速やってみます。
失礼いたします。
No.3981 タブキーでのフォーカス移動制御 投稿者:つとむ [02/3/01(金)17:46分]
いつもお世話になっています。
質問なのですが、
同じフォーム内でタブキーでの移動を分けたいのです。
text1>text2>text3
text4>text5>text6
の様にtext1,2,3のどれかにフォーカスがあればtext1,2,3内を移動して
text4,5,6のどれかにフォーカスがあればtext4,5,6内を移動するという動きです。
ご存知の方いましたら教えて頂きたいのですが。
No.3980 Re:ユーザー定義型の「動的配列」の要素数を取得 投稿者:ゆう(U) [02/3/01(金)17:39分]
> もし、ない場合一般的にはどのような設計をするのがベストなのでしょうか?教えてください。
ユーザー定義型に限らず要素数は配列の上限と下限
から実際の要素数を求められます。
※ヘルプ参照
「UBound 関数」
「LBound 関数」
ReDim前の場合はエラーが発生しますので
エラートラップをしておけばOKでしょう。
※ヘルプ参照
「On Error ステートメント」
この様な自作関数を作成しては?
一般的ではないかもしれませんが・・・
私は要素数用の変数を使うのが好きです。
lngArrayCount = 1000
ReDim myArray(1 To lngArrayCount)
初期時には -1 にでもしておくと、その変数を
参照するだけで要素数がわかりますので、関数を
使うとかの必要がなくなります。
動的配列の代わりに
「Collection オブジェクト」
「Dictionary オブジェクト」
を使用するのも良いと思います。
これなら、Countプロパティでコレクション内の
要素数を求められます。
No.3979 ユーザー定義型の「動的配列」の要素数を取得 投稿者:kuma [02/3/01(金)16:51分]
Typeで定義したユーザー定義型の変数を「動的配列」で利用し、
その配列の要素数を取りたいのですが、
Countプロパティのように簡単に取れる方法はないでしょうか?
もし、ない場合一般的にはどのような設計をするのがベストなのでしょうか?
教えてください。
例)
Type MyType
MyName As String
MyBirthDate As Date
MySex As Integer
End Type
Dim objMyType() as MyType
Redim objMyType(1 to I)
No.3978 VBからExcelへデータ表示のさいの質問です。 投稿者:松 [02/3/01(金)15:18分]
質問なのですが
VBからExcelにデータを吐き出すときに
Excelの列をそれぞれGROUP化したいのですが
VBのソースでExcelの列をGROUP化させることはできるのでしょうか?
知っている方がいらっしゃいましたら宜しくお願い致します。
No.3977 RE:サンプルについて 投稿者:花ちゃん [02/3/01(金)15:17分]
プロバイダーとのサーバーの容量等の問題もあり今後、サンプルは別途UPする
予定はありませんが、ここに表示している物や、別途サンプル集を(CD版)
希望者があれば(有料になりますが)送付する事は可能です。
No.3976 サンプルについて 投稿者:久乃 [02/3/01(金)15:02分]
このサイト、とても役立ってます!
それで、今回もMSFlexGrid関係を参考にしているのですが、
今、サンプルがDLできないそうで、
なかなかコード見てるだけでは分かりません。
いつサンプルUPされるのでしょうか?
No.3975 VBからExcelへデータ表示のさいの質問です。 投稿者:松 [02/3/01(金)14:46分]
質問なのですが
VBからExcelにデータを吐き出すときに
Excelの列をそれぞれGROUP化したいのですが
VBのソースでExcelの列をGROUP化させることはできるのでしょうか?
知っている方がいらっしゃいましたら宜しくお願い致します。
No.3974 Re: Changeイベントの抑制 投稿者:K.J.K. [02/3/01(金)12:12分]
結果としてフォーカスの移動を誘発しているのでしょう。
で、単純に、もう1つフラグ用の変数を用意しておいて、UIをコードで調整して
いる間はChangeイベントをすぐに抜けるようにしておけば簡単でしょう。
No.3973 RE:Changeイベントの抑制 投稿者:しらい [02/3/01(金)10:20分]
NAO★さん本当にこんな私の為に時間をさいていただいて、いつもすいません。
Call ChangeAttribute_Act("LOCK")の部分で
ひとつひとつのコントロールを順番にENABLED=FALSEにしているのですが1番最初の
項目のフォーカスがENABLED=FALSEにすることによって2番目、3番目と
伝播していくようです。
ENABLED=FALSEの時もプロシージャが終わってから再描画されるのでしょうか
(直接的にはSETFOCUSはしていませんし、gstr_CurrentMode = "UPDATE"のときは
この状態にはならないので...)
デバッグモードは仕組みは理解しました。勉強になります。
>は結果の部分が逆じゃないですか?
>"UPDATE"の時は入力フィールドを入力可にしなくちゃ
>更新できない様な気が…
おっしゃる通りです..説明の方が逆でした(ほんとすいません。)
No.3972 RE:MSFlexGridでComboBoxで入力 投稿者:花ちゃん [02/2/28(木)23:29分]
できるか?、できないか?、質問される前に試した方が早いですよ
No.3971 MSFlexGridでComboBoxで入力 投稿者:宮田 [02/2/28(木)22:56分]
MSFlexGridで入力をするとき、ComboBoxで選択入力できないでしょうか
No.3970 RE:印刷用紙の設定について 投稿者:花ちゃん [02/2/28(木)19:03分]
ここの(左にフレーム)印刷関係をまず見てください、
それで解らなければ再度質問願います。
No.3969 印刷用紙の設定について 投稿者:けんいち [02/2/28(木)18:53分]
お世話になります.
これまでVBAを使っていたのですが,
VBでのプログラム作成の練習を始めました.
そこで質問なのですが,
例えばWORDのVBAでは用紙を設定するとき,
ユーザー設定で用紙の大きさを指定できたのですが,
VBでの設定方法がよく分かりません.
どなたかご存知の方がいらっしゃったら,よろしくお願いします.
No.3968 RE:Changeイベントの抑制(追記) 投稿者:NAO★ [02/2/28(木)17:29分]
すみません。コピー・アンド・ペーストをミスってしまった。
原因が分かりました。(多分)
> Call SetNyutaiData_Act 'ここで情報をフィールドにセット
> If gstr_CurrentMode = "UPDATE" Then
>1*** Call ChangeAttribute_Act("UNLOCK")
>1*** Call ChangeAttribute_Act("NYUIN_NO_UNLOCK") '入力不可(各フィールドのENABLED=FALSE)
> Else
> Call ChangeAttribute_Act("LOCK")
> Call ChangeAttribute_Act("NYUIN_NO_LOCK2") '入力可(各フィールドのENABLED=TRUE)
> End If
> Call ChangeAttribute_Act("SEARCH_LOCK") '検索ボタンの使用不可
この中の関数の中でコントロールにSetFocusしている所はありませんか?
(多分 SetNyutaiData_Act の中だとは思いますが)
フォーカスは画面の再描画が行われたときにセットされる様になっていると
思われますので、この SearchKanjya_Act ルーチンが終了したあとに
フォーカスがセット(クリック)されます。
ではなぜ、デバッグモードでは再現できないかというと、
デバッグは1ステップ実行ごとに DoEvent と同じようなイベント待ちになり
この時に、フォーカスもセットされてしまうからです。
ところで上の
> If gstr_CurrentMode = "UPDATE" Then
は結果の部分が逆じゃないですか?
"UPDATE"の時は入力フィールドを入力可にしなくちゃ
更新できない様な気が…
No.3967 RE:Changeイベントの抑制 投稿者:NAO★ [02/2/28(木)17:28分]
> Call ChangeAttribute_Act("SEARCH_LOCK") '検索ボタンの使用不可
この中の関数の中でコントロールにSetFocusしている所はありませんか?
(多分 SetNyutaiData_Act の中だとは思いますが)
フォーカスは画面の再描画が行われたときにセットされる様になっていると
思われますので、この SearchKanjya_Act ルーチンが終了したあとに
フォーカスがセット(クリック)されます。
ではなぜ、デバッグモードでは再現できないかというと、
デバッグは1ステップ実行ごとに DoEvent と同じようなイベント待ちになり
この時に、フォーカスもセットされてしまうからです。
ところで上の
> If gstr_CurrentMode = "UPDATE" Then
は結果の部分が逆じゃないですか?
"UPDATE"の時は入力フィールドを入力可にしなくちゃ
更新できない様な気が…
No.3966 RE:Changeイベントの抑制 投稿者:しらい [02/2/28(木)15:51分]
'押された*****
Private Sub opt_Ope_ItIs_Click()
gbln_UpdateKanFLG = True
Debug.Print "opt_ope_itis_click True "
End Sub
検索*****
Private Sub cmd_SearchKanjya_No_Click()
If Not CheckLength_Act(txt_Kanjya_No, "KAN") Then Exit Sub
Call SearchKanjya_Act(glng_AfterKanjyaNo, "KAN", vbNullString)
End Sub
'検索*****
Private Sub SearchKanjya_Act(ByVal Get_Code As String, _
ByVal Get_Mode As String, _
ByVal Get_Code2 As String)
<<処理--adoにてdbよりレコードの読み込み、あれば以下の処理へなければexit sub>>
Select Case gstr_CurrentMode 'どのモードではいってきたか
'追加処理----------------------------------------------------------------------------
Case "ADD"
<<処理-新規>>
'更新処理,削除処理-------------------------------------------------------------------
Case "UPDATE", "DELETE"
Call SetNyutaiData_Act 'ここで情報をフィールドにセット
If gstr_CurrentMode = "UPDATE" Then
1*** Call ChangeAttribute_Act("UNLOCK")
1*** Call ChangeAttribute_Act("NYUIN_NO_UNLOCK") '入力不可(各フィールドのENABLED=FALSE)
Else
Call ChangeAttribute_Act("LOCK")
Call ChangeAttribute_Act("NYUIN_NO_LOCK2") '入力可(各フィールドのENABLED=TRUE)
End If
Call ChangeAttribute_Act("SEARCH_LOCK") '検索ボタンの使用不可
End Select
cmd_Enter.Enabled = True '実行ボタンの使用許可
grec_Nyutai.Close 'DBのクローズ
gbln_UpdateKanFLG = False '更新フラグ解除
Debug.Print "SearchKanjya_Act false"
End Sub
こんな感じですが1***の部分しか処理が違わないのに削除のときだけ
イミディエイトに"SearchKanjya_Act false"が出た後、
"opt_ope_itis_click True "が表示されます。
No.3965 RE:MSFlexGrid内のデータ1行を取得する方法 投稿者:花ちゃん [02/2/28(木)14:27分]
>MSFlexGridの固定行を選択した時、その選択した1行が反転表示されます。
>その選択した1行のデータを全て取得する方法を教えて下さい。
1セルずつ For 〜 Next で読込むしかないのでは
>また選択されている行数を取得するプロパティもあったら教えて下さい。
行数という事は複数行選択した場合何行選択したかという事ですよね
選択した時に記録しておくのが一番の方法ですかね
ここのMSFlexGrid関係や サイト内検索で検索されてもヒントになる事があると思いますよ
No.3964 RE:Changeイベントの抑制 投稿者:NAO★ [02/2/28(木)12:45分]
なんか話がかみ合わないような。気のせいかな。
>OPTIONBUTTONもFRAMEからENABLEDにして、
Enabledの意味が違うような…
Enabled(使用可能にした)ですか?
とりあえずサンプルを作ってみました。
どこでイベントが発生していますか?
' Op = OptionButtonのコントロール配列
Private Sub Command1_Click()
Dim i As Integer
Debug.Print "1"
' ユーザーがクリックできないようにする
For i = 0 To 2
Op(i).Enabled = False
Next
Debug.Print "2"
' 値を設定する(ダミーなので全部をオンにする)
For i = 0 To 2
Op(i).Value = True
Next
Debug.Print "3"
' ユーザーのクリックを可能にする
For i = 0 To 2
Op(i).Enabled = True
Next
Debug.Print "4"
End Sub
Private Sub Op_Click(Index As Integer)
Debug.Print "click"
End Sub
No.3963 MSFlexGrid内のデータ1行を取得する方法 投稿者:よしこ [02/2/28(木)11:56分]
いつもお世話になっております。
MSFlexGridの固定行を選択した時、その選択した1行が反転表示されます。
その選択した1行のデータを全て取得する方法を教えて下さい。
また選択されている行数を取得するプロパティもあったら教えて下さい。
よろしくお願い致します。
No.3962 VBからAccessの使用 投稿者:とくとく [02/2/28(木)10:18分]
Accessでデータベースを作ったのですが、VBからAccessのデータベースの値を読み込んで
グラフ表示をしたいです。この方法は可能なんでしょうか?もしできるならグラフ表示のときの
値の読み込みの方法を教えてください。
No.3961 Re:TextBoxのChangeイベントの抑制 投稿者:しらい [02/2/28(木)9:35分]
毎度毎度すいません。
>2.〜3.の間に削除処理を行ってはいないのですよね?
>想像ですが、1.〜3.の CommandButton というのはレコードの移動みたいなことをしていて
>別に削除ボタンがあるものと思いますが
1〰〜の間はあくまでも更新、削除というどの処理をこれからおこなうか
の設定をしているだけでこの後、実際の変更、削除はまた別のcommandbuttonで実行します。
1〰〜はDBから検索されて各TEXTBOX等のコントロールにセットするだけです。
>削除の時に Option ボタンの Value を操作していませんか?
>Optionの値を True に設定するとクリックイベントが発生します。
値をコントロールに入れているため、チェンジ クリック等のイベントが発生します。
その為、プロシージャの最後でフラグをクリアしているのですが、
なぜかその後(このプロシージャをぬけてから)ENABLED(ですよね)の余波での
クリック(VALUEセット)が起きているようです。
-ステップ実行だとわからないので、フラグを立てる所にDEBUG.PRINTの記述をして
トレースすると該当プロシージャをぬけてからここにいっているのです。この他にも
1.のプロセスで空のデータにゼロをフィールドにセットしているのですがこの部分の
チェンジイベントも発生しています。-
ゼロセットをやめ、OPTIONBUTTONもFRAMEからENABLEDにして、一応症状は
むりやり抑えたのですが、原因そのものの解析ができないでいます。
こんな感じなのですが....
No.3960 Re:Re: WebBrowserのプロクシ設定について 投稿者:ヤマダ [02/2/27(水)23:12分]
レスありがとうございます。
そっそくやってみたいと思います。
本当にありがとうございました。
No.3959 Re:TextBoxのChangeイベントの抑制 投稿者:NAO★ [02/2/27(水)18:52分]
いまひとつ、ぴんと来ないのですが、
>2.更新時は編集できるようにエントリできる項目はENABLE=TRUEなのですが
> 削除時の時は編集できないようにENABLE=FALSEにします。
>本来2.の時にOPTIONBUTTONクリックが発生するのではないでしょうか
Enabled(ですよね?Enableではなく)プロパティをいじったところで
クリックイベントは発生しないでしょう。
2.〜3.の間に削除処理を行ってはいないのですよね?
想像ですが、1.〜3.の CommandButton というのはレコードの移動みたいなことをしていて
別に削除ボタンがあるものと思いますが
削除の時に Option ボタンの Value を操作していませんか?
Optionの値を True に設定するとクリックイベントが発生します。
No.3958 Re:TextBoxのChangeイベントの抑制 投稿者:しらい [02/2/27(水)17:02分]
つたない文ですいませんでした。
自己レスで原因はFRAMEの上に乗っているOPTIONBUTTONが(2つ以上のグループ)
最初のOPTIONBUTTONがENABLEになった時、値が2番目以降に入ってくるため起きている
ようです。回避はできるようにはなったのですがイベント発生の順番が合点いきません。
プロセスとしては
ほぼ全部のデータが入ってくる項目のコントロールで(TextBox,ComboBox)
チェンジイベントもしくは新旧の変数の変化で
OPTIONBUTTONはクリック時にグローバルフラグを更新されたという値を設定します。
1.まずCommandButtonクリックイベントでデータを読み込んで値をテキストボックス等にセットし、
この際、当然 チェンジイベント等発生しますので フラグが立っています。
2.更新時は編集できるようにエントリできる項目はENABLE=TRUEなのですが
削除時の時は編集できないようにENABLE=FALSEにします。
3.CommandButtonクリックイベントの最後でフラグを更新されていないという値をセットしています。
プロシージャはここで終わります。
更新の時は問題なく終わります。
削除の時はこの後、OPTIONBUTTONクリックが発生しているようです。
本来2.の時にOPTIONBUTTONクリックが発生するのではないでしょうか
(ステップ実行時にはこの現象は起きません。)
この文でわかっていただけましたでしょうか。(ちょっと自信が...)
よろしくお願いいたします。
No.3957 RE:MSChartを使いたいのですが 投稿者:花ちゃん [02/2/27(水)16:59分]
質問される場合もう少し的を絞って質問して頂かないと
回答する側はどこからどこまで答えたらいいのか解りません。
まず、質問される前に自分で解る範囲の事は調べましょう
ここのHPの[MSChart関係]はご覧になりましたか?
VBのヘルプでChart等で検索されましたか?
メニューバーのプロジェクト→コンポーネントで Microsoft Chart Control にチェックを
入れて下さい。
No.3956 MSChartを使いたいのですが・・・ 投稿者:こば [02/2/27(水)15:34分]
VBのMSChartを使ってグラフを作りたいのですが、MSChartの使い方がわかりません。
どこにあるのかもわかりません。どなたか教えてください
No.3955 Re:データグリッド 投稿者:ゆう(U) [02/2/27(水)14:35分]
これって少し変な癖があるようですね・・・
※私は気づきませんでした
サンプル)
Private Sub DataGrid1_Click()
Dim i As Long
With DataGrid1
With .Columns(0)
.Visible = Not .Visible
End With
If .Columns(0).Visible Then
i = .LeftCol
.LeftCol = 0
.LeftCol = i
End If
End With
End Sub
No.3954 Re:ピクチャーボックスにフォームを表示したいのですが・・ 投稿者:ゆう(U) [02/2/27(水)14:19分]
SetParent(API)関数を使うとか・・・
No.3953 データグリッド 投稿者:K・N [02/2/27(水)14:15分]
データグリッドのある列を一度非表示にすると、
再び表示する事ができません。どなたか教えて下さい。
Private Sub Command1_Click()
DataGrid1.Columns(0).Visible = False
End Sub
Private Sub Command2_Click()
DataGrid1.Columns(0).Visible = True
End Sub
No.3952 re:re:ピクチャーボックスにフォームを表示したいのですが・・ 投稿者:hisashi [02/2/27(水)14:00分]
他のやり方はないのでしょうか?
No.3951 TextBoxのChangeイベントの抑制? (Re: ) 投稿者:K.J.K. [02/2/27(水)13:05分]
# こういう内容では、「てにをは」がはっきりしていないと意味がつかめません。
# 回答ではありません。
# 件名は内容をあらわすものにしましょう。
どのコントロール(おそらくCommandButton?)のクリックイベントで、
どのコントロール(おそらくTextBox)のEnabledプロパティやフラグ値を
「制御」しているのでしょうか
ちなみに、TextBoxでは、Enabledプロパティの値の関係なくChangeイベント
が発生します。
前のログ | 次のログ |
VBレスキュー(花ちゃん)
Visual
Basic6.0 VB6.0