<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/stu_pg/">
    <title>プログラミング覚書</title>
    <link>http://w.atwiki.jp/stu_pg/</link>
    <atom:link href="https://w.atwiki.jp/stu_pg/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>プログラミング覚書</description>

    <dc:language>ja</dc:language>
    <dc:date>2007-07-11T22:15:06+09:00</dc:date>
    <utime>1184159706</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/3.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/stu_pg/pages/5.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/11.html">
    <title>VisualBasic6.0</title>
    <link>https://w.atwiki.jp/stu_pg/pages/11.html</link>
    <description>
      -未定義関数&#039;Round&#039;エラー。
　　SP6をあててないと出る。 


**VB6をWindowsVistaで動かす
-通常Visble=Trueだけで前面表示されていたExcelが、exe実行の場合前面に表示されない。
 &lt;対応策&gt;
  API関数のSetWindowsPosを使用

**VB6でExcel2007を操作する
-非表示で操作すると、Excel2007のメッセージも非表示になる。
（互換性チェックメッセージとか。タスクマネージャーを起動するとわかる）


-互換性チェックメッセージボックスが出ても保存を行うには。
        If Val(objXL.Application.Version) &gt; 11 Then &#039;[[Excel]]のバージョン確認
            objXL.Application.ActiveWorkbook.CheckCompatibility = False &#039;互換性チェックを外す
        End If
        objXL.Application.ActiveWorkbook.Save
        If Val(objXL.Application.Version) &gt; 11 Then
            objXL.Application.ActiveWorkbook.CheckCompatibility = True  &#039;互換性チェックを規定値に戻す
        End If

-グラフを含んだExcel2000形式のブックをExcel2007で表示し保存するには。
 保存時に
 「現在の形式では保存できません。変更を保存するには[OK]をクリックし、最新の形式で保存してください。」
 と表示される。
 VBから非表示でExcel操作を行っている場合はこのメッセージが表示されないので、
 Application.DisplayAlert = Falseにして、SaveAs　[ファイル形式]=xlExcel8とする。

**印刷
-PrtScreenした画像をプリンタに印刷実行させようとするとスプール中のままになる。
 Printer.EndDocが実行されない？？
 1行ずつコードを実行させると印刷できる
 &lt;対応策&gt;
  クリップボードから値をとるときや、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 が表示される

　http://support.microsoft.com/default.aspx?scid=kb;ja;248404

**デリゲート
http://smdn.invisiblefulmoon.net/ikimasshoy/vbdotnet/eventanddelegate.html


----    </description>
    <dc:date>2007-07-11T22:15:06+09:00</dc:date>
    <utime>1184159706</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/12.html">
    <title>Excel</title>
    <link>https://w.atwiki.jp/stu_pg/pages/12.html</link>
    <description>
      -Excelのバージョン取得
 Excelでバージョン情報といえば「 Val( Application.Version ) 」という方法で、
 Excel97x：８
 Excel2000x：９
 Excel2002x：１０
 Excel2003x：１１
 という数値を取得できます。

-OS、エクセルのバージョン、ユーザー名を取得する

 Sub MyVersion()
   MsgBox &quot;Excel.Version:&quot; &amp; Chr(13) &amp; _
        &quot;Excel&quot; &amp; Application.Version &#039;エクセルのバージョン
   MsgBox &quot;OS.Version: &quot; &amp; Chr(13) &amp; _
        Application.OperatingSystem &#039;OSのバージョン
   MsgBox &quot;Excelユーザー名: &quot; &amp; Chr(13) &amp; _
        Application.UserName &#039;ユーザーネーム
 End Sub  

-ファイル形式を調べる
 
 Sub Sample()    
    Select Case ThisWorkbook.FileFormat
        Case XlFileFormat.xlExcel5
            MsgBox &quot;このファイルの形式は&quot; &amp; _
                   &quot;Excel95で作られたファイルです&quot;
        Case XlFileFormat.xlExcel7
            MsgBox &quot;このファイルの形式は&quot; &amp; _
                   &quot;Excel97で作られたファイルです&quot;
        Case XlFileFormat.xlWorkbookNormal
            MsgBox &quot;このファイルの形式は&quot; &amp; _
                   &quot;Excel2000で作られたファイルです&quot;
        Case Else
            MsgBox &quot;このファイルの形式は&quot; &amp; _
                   &quot;Excel95/97/2000以外のファイルです&quot;
    End Select
 End Sub

 
**選択範囲の漢数字を漢字に変換するマクロ
Sub ChangeKanjiToSuji()
&#039;
    Const KANJI = &quot;〇一二三四五六七八九&quot;
    Dim a, k, i
    Dim strValu As String
    
    For Each a In Selection
        a.Value = Application.WorksheetFunction.Asc(a.Value)
        strValu = a.Value
        
        Dim j As Long
        For i = 1 To Len(strValu)
            j = InStr(1, KANJI, Mid$(strValu, i, 1), 0)
            If j &gt; 0 Then Mid(strValu, i, 1) = CStr(j - 1)
        Next
        
        a.Value = Replace(strValu, &quot;･&quot;, &quot;.&quot;)
    Next
End Sub











----    </description>
    <dc:date>2007-06-26T13:57:42+09:00</dc:date>
    <utime>1182833862</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/14.html">
    <title>Micorosoft情報</title>
    <link>https://w.atwiki.jp/stu_pg/pages/14.html</link>
    <description>
      -UIPIとかUACとか

[[Vista開発者向けアプリケーション互換性情報&gt;http://www.microsoft.com/japan/msdn/windowsvista/compatibility/default.aspx]]








----    </description>
    <dc:date>2007-06-12T16:14:05+09:00</dc:date>
    <utime>1181632445</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/stu_pg/pages/2.html</link>
    <description>
      メニュー
-[[トップページ]]
-[[VisualBasic6.0]]
-[[Excel]]
-[[Access]]
-[[Micorosoft情報]]
-[[サイト内検索]]


----


-[[@ウィキ ガイド&gt;http://atwiki.jp/guide/]]
-[[@wiki 便利ツール &gt;http://atwiki.jp/tools/]]
-[[@wiki&gt;http://atwiki.jp]]
-[[プラグイン]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


**更新履歴
#recent(20)    </description>
    <dc:date>2007-06-12T16:13:51+09:00</dc:date>
    <utime>1181632431</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/15.html">
    <title>Access</title>
    <link>https://w.atwiki.jp/stu_pg/pages/15.html</link>
    <description>
      **クエリーを作成して、各オブジェクトの作成日時と更新日時を見る方法

	１．システムオブジェクトを表示させます。
	    ツール、オプション、表示でシステムオブジェクトのチェックをオンにする。
	２．クエリーを作成します。
	    テーブル（ＭｓｙｓＯｂｊｅｃｔｓ）を選択して、フィールド（Ｎａｍｅ，
	    ＤａｔｅＵｐｄａｔｅ，ＤａｔｅＣｒｅａｔｅ）を選択。
	これで、全てのオブジェクトの作成・更新の日時を表示できます。
	抽出条件を付ければ、他にもいろいろ利用できます。    </description>
    <dc:date>2007-06-12T16:13:05+09:00</dc:date>
    <utime>1181632385</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/stu_pg/pages/1.html</link>
    <description>
      **&amp;color(blue){このサイトについて}
-私がプログラミングしていく上での覚書です。
-メモ程度の気持ちで書いていますので、このサイトで紹介した方法で不具合が生じても責任は負えません。
-左のメニューよりお進みください。






----

＊＊@wikiへようこそ
-ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます


＊＊まずはこちらをご覧ください。
-[[@wikiの基本操作&gt;http://atwiki.jp/guide/category2.html]]
-[[用途別のオススメ機能紹介&gt;http://atwiki.jp/guide/category22.html]]
-[[@wikiの設定/管理&gt;http://atwiki.jp/guide/category6.html]]

＊＊おすすめ機能
-[[気になるニュースをチェック&gt;http://atwiki.jp/guide/17_174_ja.html]]
-[[関連するブログ一覧を表示&gt;http://atwiki.jp/guide/17_161_ja.html]]

＊＊その他にもいろいろな機能満載！！
-[[@wikiプラグイン&gt;http://atwiki.jp/guide/category17.html]]
-[[@wiki便利ツール&gt;http://atwiki.jp/guide/category32.html]]
-[[@wiki構文&gt;http://atwiki.jp/guide/category16.html]]

＊＊バグ・不具合を見つけたら？
お手数ですが、こちらからご連絡宜しくお願いいたします。
⇒http://atwiki.jp/guide/contact.html


＊＊分からないことは？
-[[@wiki ご利用ガイド&gt;http://atwiki.jp/guide/]]
-[[よくある質問&gt;http://atwiki.jp/guide/category1.html]]
-[[@wikiへお問い合わせ&gt;http://atwiki.jp/guide/contact.html]]
等をご活用ください    </description>
    <dc:date>2007-05-25T15:03:59+09:00</dc:date>
    <utime>1180073039</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/13.html">
    <title>サイト内検索</title>
    <link>https://w.atwiki.jp/stu_pg/pages/13.html</link>
    <description>
      サイト内を検索できます。

#search()






----    </description>
    <dc:date>2007-05-24T21:19:15+09:00</dc:date>
    <utime>1180009155</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/3.html">
    <title>メニュー2</title>
    <link>https://w.atwiki.jp/stu_pg/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)
    </description>
    <dc:date>2007-05-23T15:37:42+09:00</dc:date>
    <utime>1179902262</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/4.html">
    <title>プラグイン/ニュース</title>
    <link>https://w.atwiki.jp/stu_pg/pages/4.html</link>
    <description>
      * ニュース
@wikiのwikiモードでは
 #news(興味のある単語)
と入力することで、あるキーワードに関連するニュース一覧を表示することができます
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_174_ja.html


-----


たとえば、#news(wiki)と入力すると以下のように表示されます。


#news(wiki)
    </description>
    <dc:date>2007-05-23T15:37:42+09:00</dc:date>
    <utime>1179902262</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/stu_pg/pages/5.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/stu_pg/pages/5.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2007-05-23T15:37:42+09:00</dc:date>
    <utime>1179902262</utime>
  </item>
  </rdf:RDF>
