▼質問
タイトル(title)を変更したいんだ。
どうしたらできるか教えてくれ!
▼回答
タイトル(title)を変更するには次の2つ方法がある。
top.document.title = "タイトル";
window.document.title = "タイトル";
フレームのタイトルを使いたい場合は、
フレームのHTMLファイル内に次のコードを書けばいい。
top.document.title = top.自フレーム名.document.title;
土曜日, 3月 14, 2009
金曜日, 3月 13, 2009
[JavaScript]クエリのパラメータ(QueryString)取得
▼質問
クエリ文字列(QueryString)のパラメータを取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
次のコード参考にしてくれ!
■参考サイト
JavaScript:URLからパラメータ取得したい - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7297&forum=7&2
クエリ文字列(QueryString)のパラメータを取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
次のコード参考にしてくれ!
<script language="JavaScript" for="window" event="onload">
<!--
var QueryString = location.search.split("?");
if ( QueryString.length > 0 ) {
alert( QueryString[1] );
}
// -->
</script>
■参考サイト
JavaScript:URLからパラメータ取得したい - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7297&forum=7&2
金曜日, 3月 06, 2009
HTML文字コード表
  | @ | @ | ` | ` | € | |   | À | À | à | à | ||
! | ! | A | A | a | a |  | | ¡ | ¡ | Á | Á | á | á |
" | " | B | B | b | b | ‚ | | ¢ | ¢ | Â | Â | â | â |
# | # | C | C | c | c | ƒ | | £ | £ | Ã | Ã | ã | ã |
$ | $ | D | D | d | d | „ | | ¤ | ¤ | Ä | Ä | ä | ä |
% | % | E | E | e | e | … | ¥ | ¥ | Å | Å | å | å | |
& | & | F | F | f | f | † | | ¦ | ¦ | Æ | Æ | æ | æ |
' | ' | G | G | g | g | ‡ | | § | § | Ç | Ç | ç | ç |
( | ( | H | H | h | h | ˆ | | ¨ | ¨ | È | È | è | è |
) | ) | I | I | i | i | ‰ | | © | © | É | É | é | é |
* | * | J | J | j | j | Š | | ª | ª | Ê | Ê | ê | ê |
+ | + | K | K | k | k | ‹ | | « | « | Ë | Ë | ë | ë |
, | , | L | L | l | l | Œ | | ¬ | ¬ | Ì | Ì | ì | ì |
- | - | M | M | m | m |  | | ­ | | Í | Í | í | í |
. | . | N | N | n | n | Ž | | ® | ® | Î | Î | î | î |
/ | / | O | O | o | o |  | | ¯ | ¯ | Ï | Ï | ï | ï |
0 | 0 | P | P | p | p |  | | ° | ° | Ð | Ð | ð | ð |
1 | 1 | Q | Q | q | q | ‘ | | ± | ± | Ñ | Ñ | ñ | ñ |
2 | 2 | R | R | r | r | ’ | | ² | ² | Ò | Ò | ò | ò |
3 | 3 | S | S | s | s | “ | | ³ | ³ | Ó | Ó | ó | ó |
4 | 4 | T | T | t | t | ” | | ´ | ´ | Ô | Ô | ô | ô |
5 | 5 | U | U | u | u | • | | µ | µ | Õ | Õ | õ | õ |
6 | 6 | V | V | v | v | – | | ¶ | ¶ | Ö | Ö | ö | ö |
7 | 7 | W | W | w | w | — | | · | · | × | × | ÷ | ÷ |
8 | 8 | X | X | x | x | ˜ | | ¸ | ¸ | Ø | Ø | ø | ø |
9 | 9 | Y | Y | y | y | ™ | | ¹ | ¹ | Ù | Ù | ù | ù |
: | : | Z | Z | z | z | š | | º | º | Ú | Ú | ú | ú |
; | ; | [ | [ | { | { | › | | » | » | Û | Û | û | û |
< | < | \ | \ | | | | | œ | | ¼ | ¼ | Ü | Ü | ü | ü |
= | = | ] | ] | } | } |  | | ½ | ½ | Ý | Ý | ý | ý |
> | > | ^ | ^ | ~ | ~ | ž | | ¾ | ¾ | Þ | Þ | þ | þ |
? | ? | _ | _ |  | | Ÿ | | ¿ | ¿ | ß | ß | ÿ | ÿ |
[JavaScript]インラインフレーム(iframe)の動的操作
▼質問
iframe(インラインフレーム)の内容を動的に操作したいんだ。
どうしたらできるか教えてくれ!!
▼回答
次のコードを参考にしてくれ!
iframe(インラインフレーム)の内容を動的に操作したいんだ。
どうしたらできるか教えてくれ!!
▼回答
次のコードを参考にしてくれ!
var iframe = document.getElementById(インラインフレームのID);
if ( document.all ) {
iframedoc = iframe.contentWindow.document;
} else {
iframedoc = iframe.contentDocument;
}
iframedoc.writeln("<body></body>");
iframedoc.body.innerHTML = "テスト";
[JavaScript]JSON(JavaScript Object Notation)って何?
▼質問
JSON(JavaScript Object Notation)って何?
▼回答
テキストベースのデータフォーマット(軽量のデータ交換フォーマット)。
XMLとJSONで同じデータを双方独自の
フォーマット形式で記述できる。
●XMLの例
<ルート>
<要素1>要素①要素1>
<要素2>要素②要素2>
ルート>
●JSONの例
{
"要素1":"要素①",
"要素2":"要素②"
}
■参考サイト
[Think IT] 第1回:JSONってなにもの? (1/3)
http://www.thinkit.co.jp/article/70/1/
JSON入門 - RapidShare
http://d.hatena.ne.jp/brazil/20050915/1126709945
JSON(JavaScript Object Notation)って何?
▼回答
テキストベースのデータフォーマット(軽量のデータ交換フォーマット)。
XMLとJSONで同じデータを双方独自の
フォーマット形式で記述できる。
●XMLの例
<ルート>
<要素1>要素①要素1>
<要素2>要素②要素2>
ルート>
●JSONの例
{
"要素1":"要素①",
"要素2":"要素②"
}
■参考サイト
[Think IT] 第1回:JSONってなにもの? (1/3)
http://www.thinkit.co.jp/article/70/1/
JSON入門 - RapidShare
http://d.hatena.ne.jp/brazil/20050915/1126709945
水曜日, 2月 18, 2009
[XML or XSLT]属性値の出力
▼質問
livedoorの気象データ提供サービス「Weather Hacks」を試しているんだ。
下記のXMLファイルにあるtitle属性の値をXSLTを使って出力したいんだ。
http://weather.livedoor.com/forecast/rss/forecastmap.xml
どうしたらできるか教えてくれ!
▼回答
次のプログラムを参考にしてくれ!
・main.xml
・main.xsl
■参考サイト
XSLT > 要素テキスト・属性値の出力 @みっちーわーるど
http://www1.mahoroba.ne.jp/~mitt/xml/xslt/step06.htm
[Think IT] 第2回:APIを使ったブログパーツを作ろう! (1/3)
http://thinkit.jp/article/850/1/
XSLTスタイルシート書き方講座 応用編(2):XMLデータの埋め込みと相互参照
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt06.html
livedoorの気象データ提供サービス「Weather Hacks」を試しているんだ。
下記のXMLファイルにあるtitle属性の値をXSLTを使って出力したいんだ。
http://weather.livedoor.com/forecast/rss/forecastmap.xml
どうしたらできるか教えてくれ!
▼回答
次のプログラムを参考にしてくれ!
・main.xml
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="main.xsl" ?>
<forecastmap_list>
<title>livedoor 天気情報(1次細分区定義表)</title>
<forecastmap href="http://weather.livedoor.com/forecast/rss/forecastmap.xml"/>
</forecastmap_list>
・main.xsl
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="area_title" />
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="forecastmap_list/title" /></title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="forecastmap_list">
<xsl:apply-templates select="title" />
<table border="3">
<xsl:apply-templates select="forecastmap" />
</table>
</xsl:template>
<xsl:template match="title">
<h1><xsl:value-of select="." /></h1>
</xsl:template>
<xsl:template match="forecastmap">
<tr>
<th>地方名</th>
<th>都道府県名</th>
<th>観測地点名</th>
</tr>
<xsl:variable name="map" select="document(@href)" />
<xsl:for-each select="$map">
<xsl:apply-templates />
</xsl:for-each>
</xsl:template>
<xsl:template match="area">
<xsl:apply-templates>
<xsl:with-param name="area_title" select="@title" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="pref">
<xsl:param name="area_title" select="$area_title" />
<xsl:apply-templates>
<xsl:with-param name="area_title" select="$area_title" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="city">
<xsl:param name="area_title" select="$area_title" />
<tr>
<td><xsl:value-of select="$area_title" /></td>
<td><xsl:value-of select="parent::pref/@title" /></td>
<td>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="@source" />
</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="@title" />
</xsl:element>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
■参考サイト
XSLT > 要素テキスト・属性値の出力 @みっちーわーるど
http://www1.mahoroba.ne.jp/~mitt/xml/xslt/step06.htm
[Think IT] 第2回:APIを使ったブログパーツを作ろう! (1/3)
http://thinkit.jp/article/850/1/
XSLTスタイルシート書き方講座 応用編(2):XMLデータの埋め込みと相互参照
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt06.html
土曜日, 2月 14, 2009
[C++2005]fatal error C1083: include ファイルを開けません。'atlapp.h': No such file or directory
▼質問
次のサイトのサンプルを試してみたんだ。
programmer´s real life and so on ≫ WTLでVS2005風メニュー
そしたら、
次のエラーが出るんだ。
「fatal error C1083: include ファイルを開けません。
'atlapp.h': No such file or directory」
どうしたらよいか教えてくれ!
▼回答
Visual Studio 2005には、標準でWTLが含まれていないんだ。
だから、WTLをインストールすればいいんだ。
下記のサイトを参考にしてみてくれ!
WTLをインストールする (UsefullCode.net)
次のサイトのサンプルを試してみたんだ。
programmer´s real life and so on ≫ WTLでVS2005風メニュー
そしたら、
次のエラーが出るんだ。
「fatal error C1083: include ファイルを開けません。
'atlapp.h': No such file or directory」
どうしたらよいか教えてくれ!
▼回答
Visual Studio 2005には、標準でWTLが含まれていないんだ。
だから、WTLをインストールすればいいんだ。
下記のサイトを参考にしてみてくれ!
WTLをインストールする (UsefullCode.net)
火曜日, 2月 03, 2009
[VB2005]数値入力用のテキストボックス・コンボボックス
▼質問
数値入力専用のテキストボックスとコンボボックスを作成したいんだ。
どうしたらできるか教えてくれ!
▼回答
次のコードを参考にしてくれ!!
カスタムテキストボックスとコンボボックスだ。
数値入力専用のテキストボックスとコンボボックスを作成したいんだ。
どうしたらできるか教えてくれ!
▼回答
次のコードを参考にしてくれ!!
カスタムテキストボックスとコンボボックスだ。
Option Strict On
Option Explicit On
Public Class CustomTextBox
Inherits System.Windows.Forms.TextBox
'''
''' System.Windows.Forms.TextBox.KeyPress イベントで発生します.
'''
''' コントロールオブジェクト.
''' EventArgsクラス.
Private Sub CustomTextBox_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Me.KeyPress
If (Asc(e.KeyChar) = System.Windows.Forms.Keys.Back) Then Exit Sub
'数値キーをチェックする.
If (Not e.KeyChar Like "[0-9]") Then e.KeyChar = CChar("")
End Sub
End Class
Option Strict On
Option Explicit On
Public Class CustomComboBox
Inherits System.Windows.Forms.ComboBox
'''
''' System.Windows.Forms.TextBox.KeyPress イベントで発生します.
'''
''' コントロールオブジェクト.
''' EventArgsクラス.
Private Sub CustomTextBox_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles Me.KeyPress
If (Asc(e.KeyChar) = System.Windows.Forms.Keys.Back) Then Exit Sub
'数値キーをチェックする.
If (Not e.KeyChar Like "[0-9]") Then e.KeyChar = CChar("")
End Sub
End Class
[VB2005]MessageBoxのメッセージが隠れる
▼質問
MessageBoxのメッセージが隠れるんだ。
MsgBoxではなかった気がするんだが、
どうしてなんだ?!
▼回答
オーナー画面のTopMostプロパティにTrueが
設定されているか確認してくれ!
これを回避するには、MessageBoxのShowに
オーナー画面のオブジェクトを渡してやるんだ!
MessageBox.Show メソッド (IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon)
MessageBox.Show(Me, "メッセージ", "タイトル", MessageBoxButtons, MessageBoxIcon)
MessageBoxのメッセージが隠れるんだ。
MsgBoxではなかった気がするんだが、
どうしてなんだ?!
▼回答
オーナー画面のTopMostプロパティにTrueが
設定されているか確認してくれ!
これを回避するには、MessageBoxのShowに
オーナー画面のオブジェクトを渡してやるんだ!
MessageBox.Show メソッド (IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon)
MessageBox.Show(Me, "メッセージ", "タイトル", MessageBoxButtons, MessageBoxIcon)
火曜日, 1月 27, 2009
[VB2005]Date型のOptional
▼質問
Date型をOptionalで指定したいんだ。
Nowを定数にしようとしたけどうまくいかないんだ。
どうしたらよいか教えてくれ!!
▼回答
次の様に指定すればできるから試してみてくれ!!
Optional ByVal pDate As Date = #1/1/2000#
Optional ByVal pDate As Date = #1/1/2000 1:00:00 AM#
■参考サイト
VB.NET/文法/型/Date型 - Security Akademeia
http://wiki.akademeia.info/index?VB.NET%2F%CA%B8%CB%A1%2F%B7%BF%2FDate%B7%BF
Date型をOptionalで指定したいんだ。
Nowを定数にしようとしたけどうまくいかないんだ。
どうしたらよいか教えてくれ!!
▼回答
次の様に指定すればできるから試してみてくれ!!
Optional ByVal pDate As Date = #1/1/2000#
Optional ByVal pDate As Date = #1/1/2000 1:00:00 AM#
■参考サイト
VB.NET/文法/型/Date型 - Security Akademeia
http://wiki.akademeia.info/index?VB.NET%2F%CA%B8%CB%A1%2F%B7%BF%2FDate%B7%BF
[VB2005]半角から全角に変換
▼質問
半角の数字を全角に変換したいんだ。
どうしたらできるか教えてくれ!
▼回答
StrConv関数を使えばできるよ!!
StrConv(CStr(数字), VbStrConv.Wide)
この関数は、数字以外でも変換してくれるか便利だ!
反対に全角を半角にしたい時は、次の様にすればOKだ。
StrConv(CStr(数字), VbStrConv.Narrow)
■参考サイト
@IT:.NET TIPS 文字列を全角/半角に変換するには?(VB.NET関数活用) - C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/265vbhanzen/vbhanzen.html
半角の数字を全角に変換したいんだ。
どうしたらできるか教えてくれ!
▼回答
StrConv関数を使えばできるよ!!
StrConv(CStr(数字), VbStrConv.Wide)
この関数は、数字以外でも変換してくれるか便利だ!
反対に全角を半角にしたい時は、次の様にすればOKだ。
StrConv(CStr(数字), VbStrConv.Narrow)
■参考サイト
@IT:.NET TIPS 文字列を全角/半角に変換するには?(VB.NET関数活用) - C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/265vbhanzen/vbhanzen.html
日曜日, 1月 18, 2009
[VB2005]ExcelのValue値取得
▼質問
ExcelのValue値を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
これを実行すると面白い事が起きる。
配列の始まりが1から始まるのだ!
VB6では、Dim obj(1 To 3) As Object ができたけどね!
VB.NETからは、0始まりしか作れない。痛い(>_<)
なぜ、Excelだけ1からの配列が作れるんだ!?
不思議だ!!
ExcelのValue値を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
Public Shared Sub GetExcelValue(ByVal strFilePath As String, _
ByRef val(,) As Object, _
Optional ByVal maxRow As Integer = 65536)
Dim xlApp As Excel.Application = Nothing
Try
xlApp = CreateObject("Excel.Application")
If IsNothing(xlApp) Then Exit Sub
xlApp.Workbooks.Open(Filename:=strFilePath)
xlApp.WindowState = Excel.XlWindowState.xlMinimized
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlApp.ScreenUpdating = False
Dim wWorksheet As Excel.Worksheet = _
CType(xlApp.ActiveWorkbook.ActiveSheet, Excel.Worksheet)
With wWorksheet
.Unprotect()
Application.DoEvents()
'Value値取得(全セルを取得するとメモリのエラーになるので注意が必要!)
val = .Range("A1:IV" & maxRow).Value
End With
GC.Collect()
Catch ex As Exception
Finally
If (Not IsNothing(xlApp)) Then xlApp.Quit()
xlApp = Nothing
GC.Collect()
End Try
End Sub
これを実行すると面白い事が起きる。
配列の始まりが1から始まるのだ!
VB6では、Dim obj(1 To 3) As Object ができたけどね!
VB.NETからは、0始まりしか作れない。痛い(>_<)
なぜ、Excelだけ1からの配列が作れるんだ!?
不思議だ!!
金曜日, 1月 16, 2009
[VB2005]System.InvalidOperationException はハンドルされませんでした。
▼質問
いきなり、次のエラーが出るようになった。
System.InvalidOperationException はハンドルされませんでした。
Message="フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。"
Source="アセンブリ名"
StackTrace:
場所 アセンブリ名.My.MyProject.MyForms.Create__Instance__[T](T Instance) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 190
場所 アセンブリ名.My.MyProject.MyForms.get_frmTrendAnalyzeMenu()
場所 アセンブリ名.My.MyApplication.OnCreateMainForm() 場所 C:\パス\TrdAnalyze\My Project\Application.Designer.vb:行 35
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
場所 アセンブリ名.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
▼回答
いきなり、次のエラーが出るようになった。
System.InvalidOperationException はハンドルされませんでした。
Message="フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。"
Source="アセンブリ名"
StackTrace:
場所 アセンブリ名.My.MyProject.MyForms.Create__Instance__[T](T Instance) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 190
場所 アセンブリ名.My.MyProject.MyForms.get_frmTrendAnalyzeMenu()
場所 アセンブリ名.My.MyApplication.OnCreateMainForm() 場所 C:\パス\TrdAnalyze\My Project\Application.Designer.vb:行 35
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
場所 アセンブリ名.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Threading.ThreadHelper.ThreadStart()
▼回答
月曜日, 12月 29, 2008
[VB2005]Excel処理の高速化
▼質問
大量のデータをデータベースから読込んでExcelのシートに表示したいんだ。
ループしてValueにデータを格納すると遅くなるんだ。
一括してデータを格納する方法はないのか?!
▼回答
一括してデータを貼り付ける方法はあるよ。
まず、セルの行と列を2次元にしたデータ領域を作成するんだ。
Dim value(5, 2) As String
この領域にデータを格納して、次の様にRangeに貼り付ける範囲を指定して
Range("A1:B5").Value = value
Valueに2次元配列を格納すれば、配列に格納したイメージのままセルに
データが貼り付けられるんだ。
大量のデータをデータベースから読込んでExcelのシートに表示したいんだ。
ループしてValueにデータを格納すると遅くなるんだ。
一括してデータを格納する方法はないのか?!
▼回答
一括してデータを貼り付ける方法はあるよ。
まず、セルの行と列を2次元にしたデータ領域を作成するんだ。
Dim value(5, 2) As String
この領域にデータを格納して、次の様にRangeに貼り付ける範囲を指定して
Range("A1:B5").Value = value
Valueに2次元配列を格納すれば、配列に格納したイメージのままセルに
データが貼り付けられるんだ。
金曜日, 12月 26, 2008
[VB2005]ExcelのA1形式で列名取得
▼質問
Excelの参照形式で表示されるA1形式の数字以外の列名を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
Excelの参照形式で表示されるA1形式の数字以外の列名を取得したいんだ。
どうしたらできるか教えてくれ!
▼回答
サンプルを示すから参考にしてくれ!!
Public Shared Sub GetExcelA1Address(ByRef strA1() As String)
Dim xlApp As Excel.Application = Nothing
Try
xlApp = CreateObject("Excel.Application")
If IsNothing(xlApp) Then Exit Sub
xlApp.Workbooks.Add()
xlApp.WindowState = Excel.XlWindowState.xlMinimized
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlApp.ScreenUpdating = False
Dim wWorksheet As Excel.Worksheet = _
CType(xlApp.ActiveWorkbook.ActiveSheet, Excel.Worksheet)
ReDim strA1(256)
'最大列数分ループする。
For i As Integer = 1 To 256
strA1(i) = Replace(Split(CType(wWorksheet.Columns(i), _
Excel.Range).Address(False, True, Excel.XlReferenceStyle.xlA1), _
":")(0), "$", "")
Next i
GC.Collect()
Catch ex As Exception
Finally
If (Not IsNothing(xlApp)) Then xlApp.Quit()
xlApp = Nothing
GC.Collect()
End Try
End Sub
火曜日, 12月 16, 2008
[VBA]CopyFromRecordsetでAccessのメモ型が読込めない
▼質問
CopyFromRecordsetでAccessのメモ型が読込めない!
どうしてなのか教えてくれ!
▼回答
まずは、データベースのオープンの仕方を調べてみてくれ!
下記のようになっていなか調べてみてくれ!
con.Open ("Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\db1.mdb")
ここで問題なのは、Driver=の部分なんだ。
これはODBC接続でデータベースに行っていることを示している。
このODBC接続に不具合があるようなんだ。
だから、これをOLDB接続に替えればうまくいくと思うよ。
その方法を書きに示しておくから参考にしてくれ!
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;"
■参考サイト
[XL2000]DAO3.6でCopyFromRecordsetを使用するとデータが欠ける
http://support.microsoft.com/kb/414048/ja
ADOの接続文字列に設定するPROVIDERとDRIVERの記述方法の違い --Access Club 超初心者 FORUM--
http://www.accessclub.jp/bbs3/0222/superbeg70904.html
CopyFromRecordsetでAccessのメモ型が読込めない!
どうしてなのか教えてくれ!
▼回答
まずは、データベースのオープンの仕方を調べてみてくれ!
下記のようになっていなか調べてみてくれ!
con.Open ("Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\db1.mdb")
ここで問題なのは、Driver=の部分なんだ。
これはODBC接続でデータベースに行っていることを示している。
このODBC接続に不具合があるようなんだ。
だから、これをOLDB接続に替えればうまくいくと思うよ。
その方法を書きに示しておくから参考にしてくれ!
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;"
■参考サイト
[XL2000]DAO3.6でCopyFromRecordsetを使用するとデータが欠ける
http://support.microsoft.com/kb/414048/ja
ADOの接続文字列に設定するPROVIDERとDRIVERの記述方法の違い --Access Club 超初心者 FORUM--
http://www.accessclub.jp/bbs3/0222/superbeg70904.html
土曜日, 12月 13, 2008
[VB2005]2つのDataGridのスクロールを連動させる
▼質問
2つのDataGridのスクロールを連動させるにはどうしたら良いんだ。
DataGridのScrollイベントでスクロールのValue値を設定したんだがうまくいかないんだ。
スクロールだけ動いて、グリッドの内部が動かないんだ。
Refresh等のイベントを呼んでも駄目だったんだ。
どうしたらよいか教えてくれ!
▼回答
DataGridを継承した独自のクラスを作成するしか方法はないようだ。
独自クラスでスクロールを行うパブリックメソッドを作成して
引数にValue値を与えてそのメソッドの中でGridHScrolled
メソッドをコールすればいいんだ。
■参考サイト
DataGrid内の指定された行までスクロールする: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/datagrid/gridvscrolled.html
▼質問
片方に垂直スクロールがあると少しずれるんだ。
どうしたらよいか教えてくれ!
▼回答
垂直スクロールを表示させてから、それを非表示にすればいいんだ。
Visibleは設定ができないようだから、次の例のようにWidthを0に設定すればいいんだが・・・。
CType(Me.DataGrid1.Controls.Item(1), VScrollBar).Width = 0
これだけでは駄目なんだ。
もうひとつ、連動する相手側のサイズをあらかじめスクロールの幅分だけ短くしてないとうまく
いかないから気をつけてくれ!
2つのDataGridのスクロールを連動させるにはどうしたら良いんだ。
DataGridのScrollイベントでスクロールのValue値を設定したんだがうまくいかないんだ。
Private Sub DataGrid2_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid2.Scroll
Dim obj As DataGrid = CType(sender, DataGrid)
CType(Me.DataGrid1.Controls.Item(0), HScrollBar).Value = CType(obj.Controls.Item(0), HScrollBar).Value
End Sub
スクロールだけ動いて、グリッドの内部が動かないんだ。
Refresh等のイベントを呼んでも駄目だったんだ。
どうしたらよいか教えてくれ!
▼回答
DataGridを継承した独自のクラスを作成するしか方法はないようだ。
独自クラスでスクロールを行うパブリックメソッドを作成して
引数にValue値を与えてそのメソッドの中でGridHScrolled
メソッドをコールすればいいんだ。
Public Class CustomDataGrid
Inherits DataGrid
'''
''' 水平スクロールバーのスクロールイベントを呼び出しNewValueを設定します。
'''
''' スクロールバーの新しい値
Public Sub GridHScroll(ByVal newValue As Integer)
Dim args As New ScrollEventArgs(ScrollEventType.LargeIncrement, newValue)
GridHScrolled(Me, args)
End Sub
End Class
■参考サイト
DataGrid内の指定された行までスクロールする: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/datagrid/gridvscrolled.html
▼質問
片方に垂直スクロールがあると少しずれるんだ。
どうしたらよいか教えてくれ!
▼回答
垂直スクロールを表示させてから、それを非表示にすればいいんだ。
Visibleは設定ができないようだから、次の例のようにWidthを0に設定すればいいんだが・・・。
CType(Me.DataGrid1.Controls.Item(1), VScrollBar).Width = 0
これだけでは駄目なんだ。
もうひとつ、連動する相手側のサイズをあらかじめスクロールの幅分だけ短くしてないとうまく
いかないから気をつけてくれ!
金曜日, 12月 05, 2008
[VBA]DAO or ADO の Close
▼質問
DAOやADOのデータベース接続で失敗した時に作成しようとしたDatabaseやRecordsetの
クローズがされているかチェックしてクローズしたいんだ。
どうやったらできるか教えてくれ!
▼回答
下記にそのサンプルを示しておくから参考にしてくれ!!
DAOやADOのデータベース接続で失敗した時に作成しようとしたDatabaseやRecordsetの
クローズがされているかチェックしてクローズしたいんだ。
どうやったらできるか教えてくれ!
▼回答
下記にそのサンプルを示しておくから参考にしてくれ!!
Dim db As Database
Dim rs As Recordset
If (Not rs Is Nothing) Then rs.Close
If (Not db Is Nothing) Then db.Close
[VBA]DAOからADOへの移植
■参考サイト
DAO から ADO への移植 1
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.aspx
Takenoff Labs >> LotusScriptからRDBのデータをやりとりする
http://takenoff.com/notes/lotusscript/20081125002012.html
accessのVBAの記述についていくつか質問です。 - 教えて!goo
http://oshiete1.goo.ne.jp/qa432565.html
DAO から ADO への移植 1
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.aspx
Takenoff Labs >> LotusScriptからRDBのデータをやりとりする
http://takenoff.com/notes/lotusscript/20081125002012.html
accessのVBAの記述についていくつか質問です。 - 教えて!goo
http://oshiete1.goo.ne.jp/qa432565.html
水曜日, 12月 03, 2008
[VBA]QueryTable
▼質問
QueryTableって何?
どうやって使うの?
▼回答
ODBCのデータソースを使って簡単にデータベースにアクセスできる関数なんだ。
サンプルを示しておくから参考にしてくれ!
■参考サイト
[XL97]外部データベースにアクセスする方法
http://support.microsoft.com/kb/408061/ja
▼質問
QueryTableを使って簡単にデータベースにデータを登録したいんだ。
どうやってできるか教えてくれ!
▼回答
サンプルを示しておくから参考にしてくれ!
■参考サイト
■QueryTables.Add/.Deleteと.Names().Delete - 半角チルダ
http://blog.goo.ne.jp/end-u/e/2fd0b68b8cb29e4b80dc7182a800fc9c
▼質問
Refreshで次のエラーが出るんだ。
「バックグラウンドでデータが更新中であるため、この操作は行えません。」
どうやったら回避できるか教えてくれ!
▼回答
それは、SQLの処理が終わる前に実行しているSQLの処理を止めるような
処理が実行されているからなんだ。
だから、SQLの実行が終了したのを確認してから次の処理を実行しなくてはいけないんだ。
そのサンプルを次に示しておくから参考にしてくれ!
Refreshの後に次のコードを書けばいいんだ。
QueryTableって何?
どうやって使うの?
▼回答
ODBCのデータソースを使って簡単にデータベースにアクセスできる関数なんだ。
サンプルを示しておくから参考にしてくれ!
If (Worksheets(シート名).QueryTables.Count <= 0) Then
With Worksheets(シート名).QueryTables.Add( _
Connection:="ODBC;DSN=データソース;UID=ユーザ;PWD=パスワード", _
Destination:=Worksheets(シート名).Range("A1"))
.Sql = Array("SELECT * FROM " & tableName)
.Refresh BackgroundQuery:=False
End With
else
Selection.QueryTable.Sql = Array("SELECT * FROM " & tableName)
Selection.QueryTable.Refresh BackgroundQuery:=False
End If
■参考サイト
[XL97]外部データベースにアクセスする方法
http://support.microsoft.com/kb/408061/ja
▼質問
QueryTableを使って簡単にデータベースにデータを登録したいんだ。
どうやってできるか教えてくれ!
▼回答
サンプルを示しておくから参考にしてくれ!
maxRow = Worksheets(シート名).Range("A65536").End(xlUp).row
maxCol = Worksheets(シート名).Rows(1).End(xlToRight).Column
desCol = maxCol + 1
For Each objQuery In Worksheets(シート名).QueryTables
objQuery.Delete
Next
With Worksheets(シート名).QueryTables.Add( _
Connection:="ODBC;DSN=データソース名;UID=ユーザー;PWD=パスワード", _
Destination:=Worksheets(シート名).Cells(1, desCol))
.Sql = "DELETE FROM テーブル名 WHERE 条件)
.Refresh
Do While .Refreshing
DoEvents
Loop
.Parent.Names(.Name).Delete
.Delete
End With
Worksheets(シート名).Cells(1, desCol).ClearContents
For i = 2 To maxRow
strValue = ""
For j = 1 To maxCol
If (strValue <> "") Then strValue = strValue & ", "
strValue = strValue & "'" & Worksheets(シート名).Cells(i, j).Value & "'"
Next j
With Worksheets(シート名).QueryTables.Add( _
Connection:="ODBC;DSN=データソース名;UID=ユーザー;PWD=パスワード", _
Destination:=Worksheets(シート名).Cells(1, desCol))
.Sql = "INSERT INTO テーブル名 VALUES(" & strValue & ")"
.Refresh
Do While .Refreshing
DoEvents
Loop
.Parent.Names(.Name).Delete
.Delete
End With
Worksheets(シート名).Cells(1, desCol).ClearContents
Next i
■参考サイト
■QueryTables.Add/.Deleteと.Names().Delete - 半角チルダ
http://blog.goo.ne.jp/end-u/e/2fd0b68b8cb29e4b80dc7182a800fc9c
▼質問
Refreshで次のエラーが出るんだ。
「バックグラウンドでデータが更新中であるため、この操作は行えません。」
どうやったら回避できるか教えてくれ!
▼回答
それは、SQLの処理が終わる前に実行しているSQLの処理を止めるような
処理が実行されているからなんだ。
だから、SQLの実行が終了したのを確認してから次の処理を実行しなくてはいけないんだ。
そのサンプルを次に示しておくから参考にしてくれ!
Refreshの後に次のコードを書けばいいんだ。
Do While .Refreshing
DoEvents
Loop
登録:
投稿 (Atom)