前のログ 次のログ

No.2100 RE2:フォーム    投稿者:花ちゃん [01/5/18(金)21:21分]

フォームに表示されている画像はフォーム上に書かれたものでしょうか?

それなら、フォームの AutoRedraw プロパティを True にしないとクリップボードにコピーできません。
クリップボードにコピーできているか、どうかは、ペイントを起動して貼付を実行して見れば解かります。
コピーできていてPicture1.Picture に貼付ができないのであればフォーマット形式が合わないため
だと思いますので 1.2.3.8 を試して下さい。

 

No.2099 RE:エクセルの終了を手動で行う場合    投稿者:Hall [01/5/18(金)20:31分]

>最小化してから、Visible=Trueにしても大丈夫じゃないでしょうか?

その通りでした。
重ね重ねありがとうございました。

No.2098 re:フォーム  投稿者:あも [01/5/18(金)19:39分]

花ちゃんさんありがとうございます。

エラー発生は回避できましたが結局
vbCFBitmapもvbCFDIBもだめでした。
Picture1.Picture が空にならないようにするにはどうしたらよいのでしょう?
Meの使い方が悪いのかと思い、フォームのオブジェクト名を入れても見ましたが、だめでした。
うー・・・困りました。

No.2097 RE:VBとエクセル間でデータのやりとり  投稿者:花ちゃん [01/5/18(金)17:41分]

VBからエクセルを操作する(その1)のとこでも書いていますが


まず、プロジェクト→参照設定でMicrosoft Excel *.* Object
Library にチェックを入れておいて下さい。
VBからExcel等を操作されるのが初めてでしたら、まずその1から試して下さい。
いきなりデータのやりとりのところだけ試されると中には省略、したりしている部分もあり
また、途中でエラーが発生したりするとメモリに残ってしまったりしてフリーズ等を起こします。
せめて、目を通すだけでもしておいて下さい。
尚、サンプルはエラーチェックをしておりません。実際使われる場合はエラーチェックをしておいて下さい。

No.2096 RE2:Formを印刷したいのです  投稿者:花ちゃん [01/5/18(金)17:39分]

エラーが表示されるのはフォーマット形式が合わないために Picture1.Picture が空のために発生します。

従ってデータが無い場合印刷しないように下記のように変更されたらどうですか

Clipboard.SetData Me.Picture
If Clipboard.GetFormat(vbCFDIB) Then  'vbCFBitmap
Picture1.Picture = Clipboard.GetData()
Printer.PaintPicture Picture1.Picture, 2, 3
Printer.EndDoc
End If

*.wmf のファイルを試して見たのですが vbCFMetafile では認識しないようです。  vbCFBitmap か vbCFDIB で試して下さい。


No.2095 「VBとエクセル間でデータのやりとり」で、  投稿者:TOMO [01/5/18(金)17:19分]

こんにちは。質問させていただきます。

逆引きヘルプの「Excel・Word関係」の「VBとエクセル間でデータのやりとり 」を
試してみたのですが、「ユーザー定義型は定義されていません」とエラーが出てしまいます。

対処方法を教えていただけないでしょうか。
よろしくお願いします。

No.2094 re:Formを印刷したいのです    投稿者:あも [01/5/18(金)16:41分]

残念ながらvbCFBitmapでもだめでした。

なにがいけないんでしょ?

No.2093 ↓CommandButtonのKeyDownイベント  投稿者:匿名 [01/5/18(金)16:40分]

なるほど〜!ゆー太郎さん、有難うございました!!

ちなみに移動の自動と言う事は、フォーカスの動きは
TabIndex に関係あるのでしょうか?

No.2092 re:Formを印刷したいのです  投稿者:ゆー太郎 [01/5/18(金)16:17分]

vbCFMetafileではなく vbCFBitmap ではないですか?

No.2091 Re:CommandButtonのKeyDownイベント  投稿者:ゆー太郎 [01/5/18(金)16:12分]

コマンドボタンに限らず、チェックボックス、オプションボタンも

上下左右ボタンは フォーカスを移動自動化させるために、
VBが予約しているキーコードなので、Keyイベントは発生しません。

キーボードフックをすると、VBより先に取れない事はないですが、
非常にめんどくさいので、コマンドボタンは諦めた方が良いですよ。

No.2090 CommandButtonのKeyDownイベント  投稿者:匿名 [01/5/18(金)14:50分]

Command ButtutonのKeyDownのイベントについて。。。

矢印キー”↑、↓、←、→”ではイベントが発生しません。
他のEnterやHomeなどでは問題なく発生しています。
なぜでしょうか?困っています。
ご指導よろしく御願いしますm(_ _)m

No.2089 Formを印刷したいのです  投稿者:あも [01/5/18(金)13:41分]

printformを使用せずフォームを印刷したいのですが(印刷位置を指定したいので) 

うまくいきません。
クリップボードに貼り付けられないのか、クリップボードからもってこられないのか分かりませんが
印刷時にエラーになってしまいます
たすけてください。
  Clipboard.SetData Me.Picture
Picture1.Picture = Clipboard.GetData(vbCFMetafile)
Printer.PaintPicture Picture1.Picture, 2, 3 'ここでエラー発生(Picture1.Picture=0となっている)
Printer.EndDoc

先の意味不明メッセージは私のミスで、うっかり先走って送ってしまいました。ごめんなさい。


この間のログを紛失(取り忘れ)してしまいました。m(__)m


No.2088 Re:文字列置き換え  投稿者:花ちゃん [01/5/15(火)22:52分]

参考になるかどうか解かりませんが変換用の関数を作ってみました。

Public Function fkansujToArabia(ByVal MyString As String, _
ByVal ChangeNo As Long) As String
Dim Table(1 To 3) As String
Dim i As Long
Dim n As Long
Dim strTemp As String
strTemp = MyString
Table(1) = "0123456789-0123456789−〇一二三四五六七八九ー"
Table(2) = "0123456789−"
Table(3) = "〇一二三四五六七八九ー"
If Len(strTemp) = 0 Then Exit Function
For i = 1 To Len(strTemp)
n = InStr(Table(1), Mid$(strTemp, i, 1))
If n Then
Select Case ChangeNo
Case 4 '半角から全角に
If n <= 12 Then
Mid$(strTemp, i, 1) = Mid$(Table(2), n, 1)
End If
Case 5 '全角から半角に
If n >= 12 And n <= 22 Then
n = n - 11
Mid$(strTemp, i, 1) = Mid$(Table(1), n, 1)
End If
Case 1 To 3 '1=半角 2=全角 3=漢数字
If n >= 12 Then n = n - 11
If n >= 12 Then n = n - 11
If n >= 1 Then
Mid$(strTemp, i, 1) = Mid$(Table(ChangeNo), n, 1)
End If
End Select
End If
Next i
fkansujToArabia = strTemp
End Function



Private Sub Command1_Click()
Debug.Print fkansujToArabia("0123456789-0123456789−〇一二三四五六七八九ー", 3)
End Sub

No.2087 Re:文字列置き換え  投稿者:ゆう(U) [01/5/15(火)18:48分]

丁目や番地の数値の場所を特定することからはじめたほうが良いです。


無作為には変換できませんから・・・
変更する場所が特定できたら、総当りで変換しても良いですし
変換用の関数を自作してもOKでしょう。
10 →十
100→百
などがありますから、VBの標準関数では不可能でしょう。

No.2086 RE:みささん  投稿者:TETSU [01/5/15(火)17:22分]

オブジェクトをREFRESHするだけでよいのでは?

例)DATA1.Refresh

No.2085 ↓テキストボックスの制御について  投稿者:たまっち [01/5/15(火)15:15分]

TETSUさん、ありがとうございました。


  Text1.Selstart=Len(Text1.Text)

で、無事に解決できました♪

No.2084 RE:テキストボックスの制御について    投稿者:TETSU [01/5/15(火)13:44分]

テキストのプロパティでSelStartを使えば、どうにかなるのでは?

テキストを追加していくということで、追加する最初の位置は分かると思うので、
SelStartにテキストのLENGTHから計算した値をいれればいいのでは?

No.2083 テキストボックスの制御について  投稿者:たまっち [01/5/15(火)11:54分]

テキストボックスを使用してDOS画面のようなものを作ろうとしています。

テキスト追加はコード上からのみ可能です。
テキストを追加していった時に、常に見える位置にくるようにしたいの
ですが、可能なんでしょうか?

よろしくお願いします。

No.2082 エクセル終了について  投稿者:ウエリン [01/5/15(火)10:40分]

教えて頂いた通り、2秒ほど処理を遅らせる方法でうまくいきました。

ありがとうございました!花ちゃんさん!

No.2081 ↓あもさんと同様の内容です。(データコンボ)  投稿者:みさ [01/5/14(月)15:12分]

はじめまして、初心者のみさと申します。


ADODB.Recordsetと連結しているデータコンボがあります。

データコンボで入力・選択したデータを
連結しているフィールドに追加・削除し
さらにその結果をデータコンボに最新データとして
反映させたいのですが、どのようなステップを踏めばよいのかわかりません。

コンボボックスの場合は、Additem等で可能だと思うのですが
データコンボの場合は連結しているフィールドに対して更新を
行うことはできないのでしょうか?
HELP等を見てみると、別のデータソースの関連テーブル内のフィールドを
オプションで更新できるとかいてあったので、
そもそも無理ということなんでしょうか?

No.2080 教えて君ですみません。  投稿者:はやおき [01/5/14(月)12:47分]

お尋ねばかりで申し訳ないのですが。

EXEファイルのアイコンにデータファイルをドラッグするだけで
プログラムが実行するようなものを作りたいのですが、
作り方について、何かないでしょうか。

No.2079 文字列置き換え  投稿者:NAOKI [01/5/14(月)10:22分]

住所等の文字列で丁目や番地の数字部分を漢数字に変換したり、

その逆もあるのですが どうやったらいいのか?

自分はVB6を使用しています。。  よろしくお願いします。

No.2078 RE:RE:エクセル終了について  投稿者:花ちゃん [01/5/12(土)18:24分]

あれから色々調べてみましたら、印刷設定の所で 余白の設定を


.LeftMargin = Application.CentimetersToPoints(2)

正しくは下記のようです。
.LeftMargin = xlApp.CentimetersToPoints(2)

こちらでも参照でき、エラーも表示されないので気が付かなかったのですが  ヘルプから貼付等されたら注意が必要かもということで私の方は原因がわかりましたが  ウエリン さんも同じような設定をしておられたら一度確認して下さい。
なお、オブジェクトの解放の直後に起動チェックをされるのでしたらやはり  1〜2秒タイムラグを設けて下さい。
当サンプルを参考にされた方にはご迷惑をおかけして申し分け有りませんが、修正のほどお願いします。

No.2077 Re:Re:教えてください。  投稿者:taturo [01/5/11(金)21:15分]

くりちゃん先生、できました。やったーっ!

どうも、ありがとうございました。感謝!

No.2076 ListBoxについての質問です。  投稿者:おおか [01/5/11(金)14:21分]

List1に格納されている文字列(例えば1番上)を選択したら自動的に隣にあるList2の文字列の一番上

も選択されるようなプログラムってできないのでしょうか?
いろいろ試したのですがうまくいきませんでした。
どなたかご指導お願いします。

No.2075 RE:エクセル終了について    投稿者:ウエリン [01/5/11(金)13:22分]

早速お返事ありがとうございます。

タイマーを使うことは考えたのですが、今回のPGは印刷処理なので、

>印刷処理の場合は終了まで待つような設定があったと思います

このような設定が出来るのであれば、使用したいと思っています。
エクセルを使用するのは今回が初めてなものですから、この点について
もう少し教えていただけないでしょうか?
宜しくお願いします。

No.2074 RE:エクセル終了について  投稿者:花ちゃん [01/5/11(金)12:47分]

やはりメモリから解放される前に調べるようですね?

エクセル終了処理後次のように時間待ちすればOKですが?
Dim st As Long
st = Timer
Do While Timer - st < 1
DoEvents
Loop
ファイル保存等されているとその処理がすんでからでないとだめなようです。
その場合 xlApp.DisplayAlerts = False を試して下さい。
印刷処理の場合は終了まで待つような設定があったと思います

No.2073 エクセル終了について  投稿者:ウエリン [01/5/11(金)10:54分]

VB上でエクセルをCreateして立ち上げ、


(Dim G_Excel as Object)

G_Excel.Application.DisplayAlerts = False
G_Excel.Application.Quit
Set G_Excel = Nothing

と、して終了させています。その後、更に新しくエクセルを立ち上げ(Create使用)、処理をし、終了する。
この処理を繰り返すという仕様なのですが、前回のエクセルのインスタンスがきちんと
落ちているか判定するために、こちらの逆引きヘルプにあるようなAPIを使用
しています。

Public Function Excel_Check() As Integer

Const WM_USER = 1024
Dim hwnd As Long

Excel_Check = True

DoEvents
' Excel が起動中の場合、この API 呼び出しからはハンドルが返ります。
hwnd = FindWindow("XLMAIN", 0)

If hwnd <> 0 Then ' 0 は、Excel が起動していないことを示します。
Excel_Check = False
Exit Function
End If

End Function

上記のようにエクセルの起動チェックを入れているのですが、エクセルの落ちる速度より早く上記の処理に
入ってしまうのか、通常実行時には、ここで「エクセルが立ち上がっている」と判定されて
しまいます。ちなみに、F8で順次実行すると問題なく処理されているようです。
こういった現象を解決するには、どのように対処すべきでしょうか?
また、こういった仕様は可能なのでしょうか?
宜しくご指導お願いします。



No.2072 ツリービューコントロールについて  投稿者:Ken [01/5/10(木)21:45分]

どーもはじめまして

早速質問です。

ツリービューコントロールのMouseDownイベントで
NodeオブジェクトのIndex値を取得したいのですが
取得する方法がよくわかりません。
HELPでMouseDownイベントの項目などを見てもいまいちよくわかりません。
それともMouseDownイベントではIndex値を取得することができないのでしょうか。

VB歴一週間、超初心者です。
どなたか返答よろしくお願いします。

No.2071 TreeviewCtrlの使用  投稿者:takashi [01/5/10(木)17:02分]

ユーザーに、TreeViewを使って

ローカル、ネットワークすべてのフォルダーを指定させたいのですが
VB初心者のため、どうやったらいいかわかりません。
指定させるにはどうしたらよいのでしょう。
どなたか、教えていただけませんか?

No.2070 ファイル参照できない(泣)  投稿者:TETSU [01/5/10(木)15:09分]

はじめまして。

今非常に困っているのですが、エクスプローラーでは参照できるのにVBからはファイルの OPENができなくて困ってます。
ネットワーク上のファイルで、NetWareで接続してます。
同じ経験を以前された方、もしくは何か原因を知っている方がおられましたら教えていただきたいのですが。

よろしくお願いいたします。

No.2069 VBで排他制御する方法?  投稿者:taiki [01/5/10(木)11:36分] http://www2.synapse.ne.jp/waka/

はじめまして。

データベース(アクセスのmdb)の更新画面をVB6.0で作成して使っています。

今度、この画面を数台のパソコン(LAN環境)で同時に使えるようにした
いと思い、データベースを共有化(Win98でネットワークドライブの割当を
して共有)したところ参照は問題なく使用できたのですが、更新・追加の際
にエラーになります。

そこで、mdbファイルを排他制御する方法を探してしましたが、どうしても
わかりませんでした。

どなたか、上記環境で「mdbファイルを排他制御する方法」を教えて下さい。
ちなみにファイルの制御にはADOを使っています。


No.2068 RE:ソート技法について  投稿者:花ちゃん [01/5/10(木)9:58分]

ここのHPの逆引きヘルプに載っていますよ!


No.2067 ソート技法について。  投稿者:はやおき [01/5/09(水)21:18分]

VBで数値を対象にしてソートプログラムを作りたいのですが

よろしかったら、教えていただけませんか。お願いします

No.2066 DataComboの更新は?  投稿者:あも [01/5/09(水)18:27分]

DataComboをアクセスのテーブルと連結しています。

実行中にテーブル内容を変更して、その変更をDataComboにも反映させたいのですが、うまくいきません。
よろしくお願いします。
連結はDataEnvironmentを使用して接続したmdbで行っています。 
 RowSource = DataEnvironment名
 Rowmember = コマンド名(接続先mdbが設定してある)
 ListField = 表示したいフィールド名
 Bound Column = 表示したいフィールド名

No.2065 データグリッドについて  投稿者:がきちゃん [01/5/09(水)14:34分]

はじめて投稿させていただきます。よろしくお願いします。

VB6でデータグリッドのある列をチェックボックスにしたいのですが、その方法がわかりません。
わかる方がいましたら、教えてください。お願いします。


No.2064 エクセルの表をデータベースに直接取り込む方法  投稿者:匿名 [01/5/09(水)9:52分]

データベースソフトを作成しているのですが、

エクセルの表をデータベースに直接取り込む方法
がありましたら、ぜひ教えて下さい。

データグリッドコントロールの新規レコードに
複数件数のデータを追加したいです。(accessの
データビューに直接コピー・アンド・ペーストするような形式
が一番望ましいのですが)

No.2063 re:教えてください。  投稿者:くりちゃん [01/5/09(水)6:52分] http://homepage1.nifty.com/kurichan/

以下のようにすればOKかと思います。


Private Sub Form_Load()
Toolbar1.Buttons(3).Enabled = False
' ^^^
' ↑この値を変化させて見ましょう
End Sub

あとはヘルプ(MSDNライブラリ)で"ツールバー (Toolbar) コントロール"の項目を良く調べて見ましょう。

※メッセージの「件名」は、質問の内容を端的に表すものにした方が良いと思います。

No.2062 教えてください。  投稿者:taturo [01/5/07(月)22:02分]

VB6.0で勉強を始めたばかりの初心者です。

フォームのロード時にツールバーの指定のボタンのEnabredをFalseにしたいのですが、教えてください。
よろしくお願いします。

No.2061 ActiveXでEXE間の連携をとりたい  投稿者:いいだま [01/5/07(月)16:40分]

はじめまして。

今、2つのEXE間のデータの受け渡しをするプログラムを考えています。
1つの方法としては、EXE1からテキストファイルでデータを書き出して、それをEXE2がTimerで監視して ファイルができたらそれを読みこむやり方があるかと思うのですが、もっとスマートな方法がないかなと 思って投稿しました。
ActiveXか何かを使ってEXE間のデータの受け渡しができる方法をご存知な方、教えてください。

No.2060 MEにて  投稿者:俵 智重 [01/5/07(月)16:20分]

はじめまして、お世話になります。

Windows MEでVB6を使っています。
ヘルプのMSDNが使用できません。”CD−ROMをドライブD:に挿入して下さい”とメッセージがでます
MSDNはインストール済みなので、このメッセージが出るのは不明、なおCDを挿入していても同じです。 なぜなんでしょう。
ヘルプを使えるようにする方法はないでしょうか。どなたか教えてください。よろしくお願いします。

No.2059 RE:MsFlecGridの全機能サンプルの件  投稿者:佐藤 慎二 [01/5/04(金)10:05分]

レス、ありがとうごうざいます。

ここ1週間の悩みが吹っ飛びました。今後もサンプルプログラムを
参考にしていきたいと思いますのでよろしくお願い致します。

No.2058 RE:MSFLEXGRID全機能のサンプルの件  投稿者:花ちゃん [01/5/03(木)16:49分]

ご迷惑をおかけしました。

テキストボックスのIMEプロパティをONにするとなるようです。
Text1_KeyDown イベントの最下部の MSFlexGrid1.SetFocus この部分を削除願います。

No.2057 RE:MSFLEXGRID全機能のサンプルの件  投稿者:佐藤 慎二 [01/5/02(水)22:51分]

やはり日本語の入力ができません。

動作環境としては、Win98SE,VB6.0(SP4)
通常のPGでは日本語入力ができる環境です。
IMEのプロパティも全角かなに設定しなおしたのですが
日本語の場合にはText1には何も入力されず、英文字なら
入力される状態です。再度、レスお願いします。

No.2056 Data Environment の接続先の変更  投稿者:あも [01/5/02(水)16:06分]

Data Environment の接続先をプログラム上で変更することはできませんか?


(ゆうさんへ 先日はVBAメソッドの件でご指摘ありがとうございました。参考にしてみます。)

No.2055 Re:MSFLEXGRIDの全機能のサンプル  投稿者:ゆう(U) [01/5/02(水)13:45分]

「全機能のサンプル」ということですか・・・


「IMEMode プロパティ」がオフになっていますので、列で
判断し設定を変更するようにしてみてください。

後は 花ちゃん さんのREの通りですね。

No.2054 RE:MSFLEXGRIDの全機能サンプル  投稿者:花ちゃん [01/5/02(水)9:50分]

たぶん、ここのHPのサンプルのことだと思います。

Text1_LostFocus() イベントの所で、入力制限を桁数で行っているためだと思うのですが?
1〜3文字なら日本語でも入力できると思います。
本来は数字しか入力できないように制限し、かつ、点数の範囲(0点〜100点)で制限するべきでした。
サンプルを改造してお使いになられるようでしたら、その辺の変更もお願い致します。

No.2053 Re:全機能サンプル?  投稿者:ゆう(U) [01/5/02(水)8:59分]

> MSFLEXGRIDの全機能サンプルにて入力時に日本語の入力ができません。

> どのようにコードを変更したら日本語入力できるようになるのでしょうか?
全機能サンプルって何ですか?
※聞いたことがありません、Web上でも見つかりません(Google)・・・

日本語の入力が出来ないだけで、英数字の入力は可能なのですか?
OSやVBのバージョン・エディション、SPは何でしょうか?
※日本語の入力が出来る環境ですか

Web上やMSDNで公開されているコードであれば、その場所を教えて
下さい。
※公開されていない物であれば、現在のコードを添付してみてください。
 MSDNを「スプレッド シート」で検索すると、MSFlexGridコントロールを
 入力可能なスプレッドシート的に動作させるサンプルがありますが…

現在どのようなコードになっているか不明なので変更点も不明です。

No.2052 MSFLEXGRIDの全機能サンプル 投稿者:佐藤 慎二 [01/5/02(水)0:10分]

MSFLEXGRIDの全機能サンプルにて入力時に日本語の入力ができません。

どのようにコードを変更したら日本語入力できるようになるのでしょうか?

No.2051 GDIエラー  投稿者:ebitom [01/5/01(火)14:41分]

Windows98 VB6 SP1 で作成したプログラムでGDIエラーになってしまいます

状況 VBからEXCEL2000を制御しています
タイミングは特定できませんが
EXCELとexplorerでGDIエラーが発生してしまいます
発生アドレスは同じ場所です

どなたかご存知の方教えてください
宜しくお願いします

前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0