@wikiメニュー編集表示ツールヘルプブックマーク登録RSS登録
このウィキに参加ログイン
新規ページ作成
すでにあるページをコピーして新規ページを作成 スレッドフロート型掲示板から引用して新規ページ作成(α版) ブログの内容から引用して新規ページ作成(α版) ファイルをアップロードして新規ページ作成(α版) 他のホームページから引用して新規ページ作成(α版)
[PR] 無料ホームページ @PAGES [PR] オークション@pedia [PR] 2ch型無料レンタル掲示板 @chs
@wikiで新規wikiを作成
このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更
このページにファイルをアップロード
このウィキにファイルをアップロード(FTP機能/管理者のみ利用可)
メニューを編集(メニュー部分は非表示で編集)
このページの最新版変更点 このページの編集履歴(バックアップ) このページへのリンク元 このページへのトラックバック
このページをPDFで表示(α版)
関連ページ(α版) 関連ホットワード(α版)
このwikiのページ一覧 編集履歴(バックアップ)のあるページ一覧 このwikiのタグ一覧 このwikiの更新情報RSSこのwikiの更新情報RSS このwikiの新着ページRSSこのwikiの新着ページRSS
このwiki内を検索 @wikiパーツ▶  @wiki便利ツール▶  このwikiの管理者に連絡
@wiki助け合いコミュニティ @wiki助け合い掲示板
wiki(ウィキ)って何?
初心者ガイド
ご利用ガイド 良くある質問 プラグイン一覧 編集モードの違いについて 不具合や障害を見つけたら 管理・設定マニュアル
はてなブックマークする FC2ブックマークに追加 Livedoor クリップに追加 Yahoo!ブックマークに登録 del.icio.usに追加
はてなRSSに追加 livedoor ReaderにRSSフィードを登録 Yahoo!にRSSフィードを登録 BloglinesにRSSフィードを登録 NewsGator OnlineにRSSフィードを登録 iGoogleにRSSを追加
@wikiパーツ:あなたのサイトにWikiデータを簡単表示!
最近更新したページの一覧を表示する 最近作成したページの一覧を表示する このwiki内を検索するフォームを表示する このwikiのタグクラウドを表示する 自動リンク辞書を利用する
@wiki便利ツール:トップページ
まとめサイト作成支援ツール RSSかんたん作成 興味キーワードをチェック!!(RSSナビ) いろんなblogのRSSかんたん作成ページ アマゾン商品検索(簡単アフィリエイト) wikiに株式情報(日本)を表示 wikiに株式情報(中国)を表示 かんたんHTML直接入力 Q&Aサイトかんたん連携作成 wikiに為替情報を表示 はてなアンテナと簡単連携

プログラミング覚書 VisualBasic6.0

  • 未定義関数'Round'エラー。
  SP6をあててないと出る。


VB6をWindowsVistaで動かす

  • 通常Visble=Trueだけで前面表示されていたExcelが、exe実行の場合前面に表示されない。
<対応策>
 API関数のSetWindowsPosを使用

VB6でExcel2007を操作する

  • 非表示で操作すると、Excel2007のメッセージも非表示になる。
(互換性チェックメッセージとか。タスクマネージャーを起動するとわかる)


  • 互換性チェックメッセージボックスが出ても保存を行うには。
       If Val(objXL.Application.Version) > 11 Then 'Excelのバージョン確認
           objXL.Application.ActiveWorkbook.CheckCompatibility = False '互換性チェックを外す
       End If
       objXL.Application.ActiveWorkbook.Save
       If Val(objXL.Application.Version) > 11 Then
           objXL.Application.ActiveWorkbook.CheckCompatibility = True  '互換性チェックを規定値に戻す
       End If

  • グラフを含んだExcel2000形式のブックをExcel2007で表示し保存するには。
保存時に
「現在の形式では保存できません。変更を保存するには[OK]をクリックし、最新の形式で保存してください。」
と表示される。
VBから非表示でExcel操作を行っている場合はこのメッセージが表示されないので、
Application.DisplayAlert = Falseにして、SaveAs [ファイル形式]=xlExcel8とする。

印刷

  • PrtScreenした画像をプリンタに印刷実行させようとするとスプール中のままになる。
Printer.EndDocが実行されない??
1行ずつコードを実行させると印刷できる
<対応策>
 クリップボードから値をとるときや、EndDocの前にDoEventsやSleep制御を入れる

  • UIPI
UIPIとは、アプリケーション実行時の権限(UI特権レベル)を3つに分けて、権限の低いプロセス(※)から、権限の高いプロセスへの操作を防止する機能です。(※プロセスとはアプリケーションの実行単位です。例えばメモ帳を2つ起動すると、メモ帳のプロセスが2つできることになります。)

Vistaにおいて UI特権は以下の3つに分けられます。

高IL 管理者権限 重要なシステムへの変更が許可されたプロセス。起動前にUACにより警告ダイアログが表示される。
中IL 標準権限 一般的なプロセス。通常アプリケーションはこの権限で実行される。
低IL 限られた領域のみに書き込みが制限されたプロセス。Internet Explorer7の保護モードなど。
例えば、標準権限プロセスから、同じく標準権限のプロセスや、低ILのプロセスを操作することはできますが、管理者権限のプロセスを操作することはできません。これによって、悪意をもったソフトが、管理者権限のプロセスにメッセージを送って操作する攻撃等を防止しています。

VB6.0の型

 integer 整数   (-32768 ~ 32767)                         S9(04)
 long    整数   (-2147483648 ~ 2147483647)               S9(09)
 single  単精度 (-999999. ~ 999999.)                     S9(06).
 double  倍精度 (-9999999999999999. ~ 9999999999999999.) S9(16).
 【浮動小数点】single と double タイプは浮動少数点を持つ。
               ここで気をつけるのは、double の有効 16 桁を全て整数で使
               用した場合の小数点以下はないと言うこと。
               小数点以下 4 桁の精度を確保しようとすると、整数部分は 12
               桁以下でなければならない。
 boolean        (BOOL 値 true か false のみ記憶可能)
 byte           (1 バイト)                                 X(01)
 string  文字   (1 ~ 32767 文字)                          X(??)
 string *文字   (1 ~ 32767 文字固定長)                    X(??)
 【可変長文字変数】string は基本的に渡される文字の長さによって可変長の
               長さを持つ。
               dim a as string * 6
               と長さを指定したときは、固定長文字変数となる。

 currency 通貨型 (-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807)
 【固定小数点】通貨型は、64 bits で記憶される整数部 15 桁、小数部 4 桁
               固定の変数である。

数値計算

 電卓と基本的に違うのが、パソ系は数値演算を 2 進演算でやると言うことで
 す。10 進演算、BCD 演算などと明記されてない場合は、すべて 2 進演算が使
 用されています。
 この場合、整数の演算においてはなんらの問題も出ないのですが、小数点を含
 む演算において微妙な誤差が出て来ます。
 (例: 0.01 を単精度変数に 10 回足すと、9.999999E-02 となって、0.1 には
 ならない。9.999999E-02 = 0.09999999)
 【コツ1】
     小数点同士の計算は行わない。
     一度整数にした後、計算し、最後に少数に戻す。
     但し、完全には回避できない場合があります。
         dim a as long
         dim b as long
         dim c as double
         dim i as integer
         a = 0.01 * 100
         b = 0
         for i = 1 to 10
           b = b + a
         next
         c = b / 100
 【コツ2】
     VB6 では、variant で 10 進数を保持できます。
     cdec() をうまく利用すると、誤差のない数値計算が可能です。


Currency型

 たとえば、「Currency型 + Currency型」の演算結果は Currency型ですが、
 「Currency型 / Currency型」の演算結果は、Double型となるため、
 単純に割り算などを行ってしまうと、結局は誤差を生じる可能性があります。
 「Currency型 * Currency型」の演算結果はCurrency型

ADO が再配布されたアプリケーションで実行時エラー メッセージ 430 が表示される



デリゲート