SQLの窓

2013年08月09日


VB.net(VS2010) で COM へ公開して、WSH(VBScript) で利用する( C# でも同様 )

※ C# の場合、ルート名前空間では無く、ソースコード内の namespace で指定します

新規プロジェクト



コード自体は特別な事はしません。以下のようなコードを作成します
Imports System.Windows.Forms

Public Class Class1

	Public Sub Hello()

		MessageBox.Show("こんにちは")

	End Sub

	Public Function PcName() As String

		PcName = My.Computer.Name

	End Function

End Class

ここでは、MessageBox.Show を使う為に、System.Windows.Forms を Imports していますが、COM へ公開するのに必須ではありません。また、System.Windows.Forms を Imports するには、参照設定を行う必要があります。



COM へ公開する為の特別な設定(1)

まず、Release に設定して下さい。



COM へ公開する為の特別な設定(2)

COM としてビルドする為の設定は、プロジェクトのプロパティから、アセンブリ情報ボタンをクリックして開いたダイアログで、チェックボックスを ON にするだけです。



COM へ公開する為の特別な設定(3)

署名タブから、アセンブリの署名を行うようにチェックボックスを ON にして、『厳密な名前のキーファイル』を作成します。



▼ ファイル名は任意


COM へ公開する為の特別な設定(4)

ルート名前空間を決定します( CreateObject で使用するピリオドの前にある名前 )




ビルドしてから COM として登録する

以下のように登録用と削除用のファイルを配置します。



ショートカットは、『管理者権限で実行』できるように設定します





▼ build.bat の中身です
cd %~p0

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm MyComClass.dll /tlb:MyComClass.tlb /codebase

pause

▼ remove.bat の中身です
cd %~p0

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm MyComClass.dll /unregister

pause

▼ 管理者権限での実行可能なショートカットより実行


▼ レジストリエディタで登録された事を確認


実行用テストコード
Set obj = Wscript.CreateObject("winofsql.Class1")

Call obj.Hello()

Wscript.Echo obj.PcName()




posted by lightbox at 2013-08-09 00:45 | VB.NET : テクニカル | このブログの読者になる | 更新情報をチェックする

2013年08月04日


Word 2010を終了しようとすると、マクロエラーについてのダイアログと『全文書対象の Normal.dotm テンプレートに影響する変更が行われています。 変更を保存しますか?』と聞かれて保存すると保存できずにキャンセルするしかない現象の原因

Microsoft のサポートでは相変わらず良くわからない記述があります。


どれかでうまく行く時もあるかもしれませんが、原因からするとあまりアテになりません。

いくつか、3番目で解消されたという報告が Web 上にありましたが、こちらでは、そもそもレジストリに登録されるべきものが無い為に起きていたようなので、まず以下の事をします。

❶ Word のオプションを開く


❷ COM アドインを開く


次に、この先頭のチェックを外して WORD をエラーが出てもいいので終了します。すると次回から出なくなるので、出ないのを確かめたら再びチェックを入れます。

事前にレジストリを調べたのですが、アドオンには3つしか登録がされていませんでした。チェックするしないにかかわらず、アドオンは登録されていなければなりません。そして、先頭のチェックを外すと、レジストリに登録されたのを確認する事ができました。そして、再びチェックを入れても正しく動作します。

ですから、再びチェックするのは必要ありませんが、他人の環境はどのような不都合があるかもしれないので、できるだけ元に近い状態に復帰するという事で。

マクロのエラーダイアログは、こちらの特定の環境が原因だと思います。
タグ:トラブル
posted by lightbox at 2013-08-04 21:44 | Microsoft Office | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり