ExcelのVBAを使って、システムのプロパティの内容を取得したいのですが、
可能でしょうか?
マイコンピューターを右クリックしてプロパティを選択し、全般タブに
表示されるシステム、使用者、コンピューターに関する項目のことです。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

バージョンは、下記の方法で取得できます。


モジュールに書くコードです。

Option Explicit

' Windowsのバージョンに関する拡張情報を取得する関数の宣言
Declare Function GetVersionEx Lib "kernel32.dll" _
Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long

' Windowsのバージョンに関する拡張情報を定義する構造体の宣言
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion(127) As Byte
End Type

' バージョン情報に関する値を示す定数の宣言
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32_NT = 2

Public Sub GetVer() 'ユーザー定義関数

Dim udtOSVersionInfo As OSVERSIONINFO
Dim strOSversionInfo As String
Dim lngResult As Long
Dim Msg As String

' バージョンに関する拡張情報の構造体を初期化
With udtOSVersionInfo
.dwOSVersionInfoSize = Len(udtOSVersionInfo)
End With
' Windowsのバージョンに関する拡張情報を取得
lngResult = _
GetVersionEx(udtOSVersionInfo)
' Windowsのバージョンに関する拡張情報を表示
With udtOSVersionInfo
' OSを表示
Select Case .dwPlatformId
Case VER_PLATFORM_WIN32_WINDOWS
Msg = "Windows 95 or Windows 98"
Case VER_PLATFORM_WIN32_NT
Msg = "Windows NT or Windows 2000"


' バージョン情報を表示
'NTまたは2000の場合、バージョンが取得できます。
Msg = Msg & _
.dwMajorVersion & "." & _
.dwMinorVersion & " (" & _
(.dwBuildNumber And &HFFFF&) & ")"

End Select
End With

MsgBox Msg

End Sub
    • good
    • 0

コンピュータ名は、GetComputerName()APIをつかにます。


メモリは、GlobalMemoryStatus()API
CPUは、GetSystemInfo()API

お役に立てれば幸いです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q右クリック、ダブルクリックの操作

勤務表作成してます。
A1に「ON・OFF」を表示します。
「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。
「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。
よろしくお願いします。
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

' ActiveCell = ActiveCell.Offset(-1, 0).Value
'
' If Target = Range("$A$1") Then
' Cancel = True

If Range("$A$1").Value = "イベントON" Then
Range("$A$1").Value = "イベントOFF"
Else
Range("$A$1").Value = "イベントON"
ActiveCell = ActiveCell.Offset(-1, 0).Value
Exit Sub
End If

Cancel = True
If Range("$A$1").Value = "イベントOFF" Then
Exit Sub
End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

'ActiveCell = "1"
' If Target = Range("$A$1") Then
' Cancel = True

' If Range("$A$1").Value = "イベントON" Then
' Range("$A$1").Value = "イベントOFF"
If Range("$A$1").Value = "イベントON" Then
ActiveCell = "1"

Else: Range("$A$1").Value = "イベントOFF"
Exit Sub
End If
Cancel = True

If Range("$A$1").Value = "イベントOFF" Then
Exit Sub
End If
End Sub

勤務表作成してます。
A1に「ON・OFF」を表示します。
「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。
「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。
よろしくお願いします。
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

' ActiveCell = ActiveCell.Offset(-1, 0).Value
'
' If Target = Range("$A$1") Then
' ...続きを読む

Aベストアンサー

ON.OFFの切り替えが知りたいの?

http://qanda.rakuten.ne.jp/qa4948485.html
の、方は締め切った方がいいと思うよ
良く見れば違うけど、質問部分は同じだし
「マルチポスト」になると思う

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case "イベントON"
Target.Value = "イベントOFF"
Case "イベントOFF"
Target.Value = "イベントON"
End Select
Cancel = True
Exit Sub
End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case "イベントON"
Target.Value = "イベントOFF"
Case "イベントOFF"
Target.Value = "イベントON"
End Select
Cancel = True
Exit Sub
End If
End Sub

ON.OFFの切り替えが知りたいの?

http://qanda.rakuten.ne.jp/qa4948485.html
の、方は締め切った方がいいと思うよ
良く見れば違うけど、質問部分は同じだし
「マルチポスト」になると思う

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case "イベントON"
Target.Value = "イベントOFF"
Case "イベントOFF"
Target.Value = "イベントON"
End Select
Cancel = True
Exit Sub
End If
End Sub...続きを読む

Qリストビューの項目の追加と選択されている項目

ソースから動的にリストビューの項目の追加方法
またそのうち選択されているもの(複数選択は行わない)が変わった時に
どの項目が選択されているか取得する方法の2つが知りたいのですが。

加えてコンボボックスの項目をソースから動的に追加する方法を教えていただけると嬉しいです。

Aベストアンサー

VB.NETでは・・・

>ソースから動的にリストビューの項目の追加方法

ListView.Items
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.items.aspx

ListView.ListViewItemCollection.Add
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.listviewitemcollection.add.aspx

あたりを参考にしてください

>の項目が選択されているか取得する方法の2つが知りたいのですが。

ListView.SelectedIndices プロパティ
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.selectedindices.aspx

ListView.SelectedItems プロパティ

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.selecteditems.aspx

あたりを参考に

>たそのうち選択されているもの(複数選択は行わない)が変わった時に

ListView.SelectedIndexChanged イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.selectedindexchanged.aspx

>コンボボックス
ComboBoxクラス
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.combobox.items.aspx

ComboBox.ObjectCollection クラス
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection.aspx

ComboBox.ObjectCollection.Add メソッド
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection.add.aspx


#AddだけじゃなくAddRangeもみておくとよいかも

VB.NETでは・・・

>ソースから動的にリストビューの項目の追加方法

ListView.Items
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.items.aspx

ListView.ListViewItemCollection.Add
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.listviewitemcollection.add.aspx

あたりを参考にしてください

>の項目が選択されているか取得する方法の2つが知りたいのですが。

ListView.SelectedIndices プロパティ
http://msdn2.microsoft.com/ja-...続きを読む

QTextBoxのhWndプロパティVBAでも使えませんか?

環境
OS:Win2000ProSP4 Excel2000および2002

Excel2000で、テキストボックスのあるフォームを作成しました。
選択したファイルを読み込んでテキストボックスに表示する機能があり
それに加えて、テキストボックス中をマウスでクリックした時、その場
所のカーソルの位置(そこの行数と行内で何カラム目か、の2つ)を取得し
て同じフォーム上に表示させる機能をつけました(矢印ボタンでカーソ
ルが移動しても、位置情報を更新するようにしています)。ただし、
ネットで調べたカーソル位置取得方法はVBAでなくてVBのものなので、
API(SendMessage)に渡すテキストボックスのhWndプロパティはなく、
困ってしまいました。窮余の一策として、普通のテキストボックスの
代わりに、リッチテキストコントロールを使用して、その中にある
hWndプロパティを渡して、上の機能を実現していました。ところが、
Excelを2002にアップグレードしたら、リッチテキストコントロール
が使えないことが判明しました(MSのサイトによると、セキュリティの
ため、とのこと)。
Excel2002で、2000時代につくったフォームを開くと、リッチテキスト
コントロールがすっぽり抜け落ちている状態です。こうなれば、普通の
テキストボックスのhWndプロパティをAPIで取得できないか、というこ
とを調べているところで困っています。あるいは、2002でも使える同じ
ようなコントロールがあれば助かります。
長くなりましたが、ご存知の方、アドバイスをお願いします。

環境
OS:Win2000ProSP4 Excel2000および2002

Excel2000で、テキストボックスのあるフォームを作成しました。
選択したファイルを読み込んでテキストボックスに表示する機能があり
それに加えて、テキストボックス中をマウスでクリックした時、その場
所のカーソルの位置(そこの行数と行内で何カラム目か、の2つ)を取得し
て同じフォーム上に表示させる機能をつけました(矢印ボタンでカーソ
ルが移動しても、位置情報を更新するようにしています)。ただし、
ネットで調べたカーソル位置取得方法はVBAで...続きを読む

Aベストアンサー

こんばんわ。
No.1のe10goです。

>VBEditorツールバー上の表示ににあるような「その行内での何桁
>目か」の表示をしたいのが理想です。何か良い方法はないでしょう
>か?

下のコードで何とか、「何行目、何桁です。」と表示できました。

Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
  ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Dim i As Integer, a As Integer, b As String, c As Integer
  a = TextBox1.CurLine + 1
  If a > 1 Then
   b = Left(TextBox1.Text, TextBox1.SelStart + TextBox1.CurLine)
    For i = TextBox1.SelStart To 1 Step -1
      If Mid(b, i + TextBox1.CurLine, 1) = vbCr Then
        c = TextBox1.SelStart - i - IIf(a > 1, 1, 0)
        Exit For
      End If
    Next i
  Else
    c = TextBox1.SelStart
  End If
  MsgBox "カーソルの位置は、" & a & "行目、" & c & "桁です。"
End Sub

こんばんわ。
No.1のe10goです。

>VBEditorツールバー上の表示ににあるような「その行内での何桁
>目か」の表示をしたいのが理想です。何か良い方法はないでしょう
>か?

下のコードで何とか、「何行目、何桁です。」と表示できました。

Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
  ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Dim i As Integer, a As Integer, b As String, c As Integer
  a = TextBox1.CurLine + 1
  If a > 1 Then
   b =...続きを読む

QVBA クラスにプロパティが実装できません

VBA初心者です。
現在、Excel2003-VBAでクラスにプロパティの実装を試みていますが、うまくいきません。
Publicで宣言する方法は問題なく出来たのですが…。
勉強用のため、敢えて簡単なサンプルを自分で作っています。


【状況】
下記プログラムで、メッセージを「20」と表示させたいのですが、
「スタック領域が不足しています」エラーにより、実行できません。
また「Atai」を「Suji」にかえると、メッセージとして「0」と出てきます。
あるいは、「Suji = Atai + 5」を消してみても「15」ではなく「0」と出ます。


【質問】
どちらでもうまくいかないのですが、これは
(1)このコードがおかしいのか、それとも
(2)単純なプログラムであるのに領域不足と出るところから、
VBA特有の不具合でどうしようもない物なのでしょうか?

ご意見お待ちしています。



===通常Module(呼び出し側)===

Option Explicit

Sub 実行()

Dim Haichi As New Class1

With Haichi
.Suji = 15
.MSGクラス
End With

End Sub


===クラスMODULE(Class1)===

Option Explicit

Sub MSGクラス()
MsgBox Suji
End Sub

Public Property Let Suji(Atai As Double)
Suji = Atai + 5
End Property

Public Property Get Suji() As Double
End Property

VBA初心者です。
現在、Excel2003-VBAでクラスにプロパティの実装を試みていますが、うまくいきません。
Publicで宣言する方法は問題なく出来たのですが…。
勉強用のため、敢えて簡単なサンプルを自分で作っています。


【状況】
下記プログラムで、メッセージを「20」と表示させたいのですが、
「スタック領域が不足しています」エラーにより、実行できません。
また「Atai」を「Suji」にかえると、メッセージとして「0」と出てきます。
あるいは、「Suji = Atai + 5」を消してみても「15」ではなく「...続きを読む

Aベストアンサー

一般的な実装

' プロパティSujiの値を記憶しておく実体
Private dSuji as Double

public Property Let Suji( Atai as Double )
  dSuji = atai + 5
end Property

Public Property Get Suji() as Double
  Suji = dSuji
End Property

といった具合に実装します

質問のような記述をすると #1の回答のように
実行時に
With Haichi
.Suji = 15
で Class1の
Public Property Let Suji(Atai As Double)
ここが呼び出されます

次の
Suji = Atai + 5 が Sujiへの代入なので
また
Public Property Let Suji(Atai As Double)
の行が実行されます
これが繰り返されて スタックを食いつぶすことになります

QIEの右クリックメニューに項目を追加した時のVBスクリプト

はじめまして宜しくお願いします
文字列を選択した状態で右クリックするとメニューに(この書籍を検索する)という項目を追加しました。
この項目をクリックすると書籍検索ページに移動します。書籍検索ページにはテキストボックスと検索ボタンがあります。通常はテキストボックスに検索したい書籍を入力して検索ボタンを押すとhttp://localhost/booksurch.php(検索結果ページ)にとぶ様になってます。書籍検索ページに移動する事は出来たのですが移動してからexternal.menuArguments.document.selection.createRange().text で取得した文字を検索結果ページに渡したいのですが全く解りません。どなたか教えていただけませんでしょうか?作りかけのソースです。
<SCRIPT LANGUAGE="VBScript">
<!--
Dim strSelText
Dim strOpenUrl
strSelText =external.menuArguments.document.selection.createRange().text
If Len(strSelText) Then
strOpenUrl="http://localhost/booksurch.html"
open strOpenUrl
Document.ValidForm.nm.Value =strSelText
document.ValidForm.submit()
End If
// End -->
</Script>

はじめまして宜しくお願いします
文字列を選択した状態で右クリックするとメニューに(この書籍を検索する)という項目を追加しました。
この項目をクリックすると書籍検索ページに移動します。書籍検索ページにはテキストボックスと検索ボタンがあります。通常はテキストボックスに検索したい書籍を入力して検索ボタンを押すとhttp://localhost/booksurch.php(検索結果ページ)にとぶ様になってます。書籍検索ページに移動する事は出来たのですが移動してからexternal.menuArguments.document.selection.create...続きを読む

Aベストアンサー

手動で検索したとき,

http://localhost/booksurch.php

の後に何か付きませんか?
例えば「Google」で『goo』を検索すると,
http://www.google.co.jp/search?hl=ja&q=goo&lr=
となります。
変数をCGIやPHPにGetで渡すしくみにしてある場合,元のURLの後に?~~と続きます。これすべてがURLです。
ここまでを,
変数strOpenUrlに格納しないと検索結果が出ません。
下の参考URL↓を参考にしてみてください。

URLエンコードも関係するかもしれません。

http://www.geocities.co.jp/SilkRoad/4511/vb/sample/google.txt

変数をPostで渡すしくみである場合については良くわかりません。

参考URL:http://backno.mag2.com/reader/BackBody?id=200411292020000000044778000


このカテゴリの人気Q&Aランキング

おすすめ情報