Excelノート 99-02 その他

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

21 Textプロパティと、Valueプロパティの違いは何でしょうか
22 ハイパーリンク付きのセルをクリックで編集するには
23 メニューバーの一覧を取得するには
24 セルの位置をポイントで取得
25 ふりがなりストから選択するには
26 現在開いているファイルのパスを取得するには
27 選択したセルの番地を取得するには
28 ステータスバーの文字を変えて、また元に戻すには
29 セルを結合しその中の文字も結合するには
30 複数にまたがった文字列を1つの他のセルに結合するには
31 アクティブなブックの フルパス、フォルダ名、ファイル名、シート名を取得するには
32 使用中のExcelのバージョンを取得するには
33 使用中のOSのバージョンを取得するには
34 Sheet1の内容と同じSheet2のセルに、ハイパーリンクを貼るには
35 ダブルクリックで任意のマーク(文字列)を貼り付けるには?
36 選択した範囲のセルを、一部だけ選択を解除するには
37 変数の型宣言(データ型一覧)
38 変数の型宣言(型宣言文字)
39 アドレス取得各種
40 Excel2000で、ヘルプが出ない場合の出し方

21 Textプロパティと、Valueプロパティの違いは何でしょうか
http://www.keep-on.com/~excelyou/2000lng4/200012/00120435.txt
  「テキストボックスのTextプロパティと、Valueプロパティの違いは何でしょうか」
  【VBAラウンジ】
テキストボックスの場合は「Valueプロパティ」と「Textプロパティ」は同じ値です。

コンボボックスの場合、
 1列のみ‥‥‥「Valueプロパティ」と「Textプロパティ」は同じ値
 複数列 ‥‥‥「Valueプロパティ」BoundColumnプロパティで指定される列の値
        「Text プロパティ」TextColumnプロパティで指定される列の値

セルの場合
 「Valueプロパティ」セルに記述されている式(定数含む)の値(Variant)
 「Text プロパティ」Valueプロパティの値を『表示形式』によって編集した内容(String)

  セルA1に「1000」が書き込まれていて、表示形式が「#,##0」の場合
   Value : 1000 という数値
   Text : "1,000"という文字列
22 ハイパーリンク付きのセルをクリックで編集するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200012/00120043.txt
  「ハイパーリンク付きのセルを編集するには」 【編集ラウンジ】
Excel97、Excel2000 共通
 クリックした時、離す時間を遅くする。
23  メニューバーの一覧を取得するには
メニューバーの詳細をシートに書き出します。
Public Sub GetCommandBars()
 Dim cmd As CommandBar
 Application.ScreenUpdating = False
'画面の更新なし
 ActiveSheet.UsedRange.ClearContents
'既存のデータ クリア
 'コマンドーバーの一覧を取得(アプリケーション単位)
 For Each cmd In Application.CommandBars
  Cells(cmd.Index, 1).Value = cmd.Index
'インデックス取得
  Cells(cmd.Index, 2).Value = cmd.Name
'名前取得
  Cells(cmd.Index, 3).Value = cmd.NameLocal
'ローカル名取得
  'コマンドバーのコントロールの一覧を取得
  Call GetControl(cmd)
 Next cmd
 Application.ScreenUpdating = True
End Sub
Public Sub GetControl(CB As CommandBar)
 Dim CTRL As CommandBarControl
 Dim intRow As Integer
 For Each CTRL In CB.Controls
  intRow = CB.Index
  Cells(intRow, 3 + CTRL.Index).Value = CTRL.Caption & "(" & CTRL.Type & ")"
 Next CTRL
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
24 セルの位置をポイントで取得
Sub セルの位置をポイントで取得()
 Dim 左 As String, 上 As String, seru As Variant
 Sheets("Sheet1").Activate
 Set seru = Application.InputBox("セルを指定して下さい", "セルの選択", Type:=8)
 左 = seru.Left
 MsgBox "左から " & 左 & " ポイントです", Title:="セルのポイント"
 上 = seru.Top
 MsgBox "上から " & 上 & " ポイントです", Title:="セルのポイント"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
25  ふりがなりストから選択するには
http://www.keep-on.com/~excelyou/2000lng1/200008/00080039.txt
  「ふりがなりストから選択するには???」 【編集ラウンジ】
Excel2000 のみ(新機能)
 セルを選んで、ダブルクリック、そして、右クリック
 その後「ふりがなの編集」をクリックして、もう一度右クリックすると
 「ふりがなリストから選択」が出てきます。
26  現在開いているファイルのパスを取得するには
Sub フルパス()
MsgBox ThisWorkbook.FullName
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
27 選択したセルの番地を取得するには
MsgBox Selection.Address          '$A1、$B1という形式で返ります。
MsgBox Selection.Address(False, False)  'A1、B1という形式で返ります。
28 ステータスバーの文字を変えて、また元に戻すには
Application.StatusBar = "しばらくお待ちください..."
Application.StatusBar = False
29 セルを結合しその中の文字も結合するには
http://www.keep-on.com/~excelyou/2000lng1/200009/00090092.txt
  「セルを結合しその中の文字も結合するには」 【編集ラウンジ】
結合したい複数のセルを選択して実行します。
Sub セルと文字を結合()
Dim Tmp As Variant
Dim sTmp As String
'文字列結合
For Each Tmp In Selection
sTmp = sTmp & Tmp
Next Tmp
'セル結合
Application.DisplayAlerts = False
Selection.MergeCells = True
Application.DisplayAlerts = True
'文字列を結合したセルへ
ActiveCell = sTmp
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
30 複数にまたがった文字列を1つの他のセルに結合するには
Excel97、Excel2000 共通
 =A1&B1
Excel97、Excel2000 共通
 =CONCATENATE(A1,B1)
31 アクティブなブックの フルパス、フォルダ名、ファイル名、シート名を取得するには
Sub test()
MsgBox ActiveWorkbook.Path
 
'フォルダのフルパスを取得します。 例 C:\Mydocuments\miko
MsgBox Dir(ActiveWorkbook.Path, vbDirectory)
 
'フォルダの名前を取得します。 例 miko
MsgBox ActiveWorkbook.Name
 
'ファイルの名前を取得します。 例 Book1.xls
MsgBox ActiveSheet.Name
 
'シートの名前を取得します。 例 Sheet1
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
32 使用中のExcelのバージョンを取得するには
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010164.txt
  「Excel97とExcel2000のどちらを使っているか取得するには?」 【VBAラウンジ】
Sub TestVer2()
 Dim Mymsg As String
 Select Case Application.Version
  Case "9.0"
   Mymsg = "Excel2000"
  Case "8.0"
   Mymsg = "Excel97"
  Case "8.0e"
   Mymsg = "Excel97 SR-2"
  Case "7.0"
   Mymsg = "Excel95"
  Case Else
   Mymsg = "Excel95よりも古いバージョン"
 End Select
 MsgBox "使用中のExcelのバージョンは、" & Chr(13) & _
 Chr(13) & Chr(13) & Mymsg & "です", vbInformation
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
33 使用中のOSのバージョンを取得するには
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010162.txt
  「Win98、Win2000、WinMeのOSの判定をするには?」 【VBAラウンジ】
Sub TestVer()
 MsgBox Application.OperatingSystem
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
34 Sheet1の内容と同じSheet2のセルに、ハイパーリンクを貼るには
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010108.txt
  「任意のセルをクリックして、他シート(リスト)の共通の場所へ移動するには」
  【VBAラウンジ】
複数のセルを選択してから実行してください。
Sub SetHyperlinks()
 Dim TargetRange As Range
 Dim SearchRange As Range
 Dim FoundCell As Range
 Dim NextCell As Range
 Dim r As Range
 If TypeName(Selection) <> "Range" Then Exit Sub
  If Selection.Cells.Count = 1 Then Exit Sub
   Set TargetRange = Selection
   Application.ScreenUpdating = False
   TargetRange.Hyperlinks.Delete
 With Worksheets("Sheet2")
  Set SearchRange = .Columns(1)
  For Each r In TargetRange
   If Len(r.Value) > 0 Then
    Set FoundCell = SearchRange.Find(what:=r.Value, _
    LookIn:=xlValues, _
    LookAt:=xlWhole)
    If Not FoundCell Is Nothing Then
     .Hyperlinks.Add Anchor:=r, _
     Address:="", _
     SubAddress:=.Name & "!" & FoundCell.Address
     Do
      Set NextCell = SearchRange.FindNext(FoundCell)
      If NextCell.Address = FoundCell.Address Then Exit Do
       Set FoundCell = NextCell
       .Hyperlinks.Add Anchor:=r, _
       Address:="", _
       SubAddress:=.Name & "!" & FoundCell.Address
     Loop
    End If
   End If
  Next
 End With
 Set TargetRange = Nothing
 Set SearchRange = Nothing
 Set FoundCell = Nothing
 Set NextCell = Nothing
 Application.ScreenUpdating = True
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
35 ダブルクリックで任意のマーク(文字列)を貼り付けるには?
http://www.keep-on.com/~excelyou/2000lng4/200010/00100207.txt
  「マウスで任意のマーク(文字列)を貼り付けるには?」 【VBAラウンジ】
ダブルクリック:1回目「採用」、2回目「保留」、3回目初期値右クリック:「不採用」
と入力します。また、シートのA列のみを対象とし、かつ一行目は対象外としています。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 If Target.Row = 1 Then Exit Sub
  If Target.Column <> 1 Then Exit Sub
  If Target.Value = "採用" Then
    Target.Value = "保留"
   ElseIf Target.Value = "保留" Then
    Target.Value = "不採用"
   ElseIf Target.Value = "不採用" Then
    Target.Value = "採用"
   Else
    Target.Value = "不採用"
  End If
 Cancel = True
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
36 選択した範囲のセルを、一部だけ選択を解除するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200010/00100164.txt
  「セル範囲の選択途中での、選択範囲の一部解除はできますか?」 【編集ラウンジ】
Excel97、Excel2000 共通
 連続した範囲なら、Shift+↑ で、戻りたい所まで戻る
Sub 複数選択セルの一部を選択解除()
 Dim s As Range
 Dim i As Integer, a As Integer
 Set s = Selection
 If s.Areas.Count = 1 Then Exit Sub
 a = Application.InputBox(Prompt:="何番目に選択したセルを、選択解除しますか?", Default:=s.Areas.Count, Type:=1)
 If (VarType(a) = vbBoolean) Then Exit Sub
 If a <> 1 Then
  s.Areas(1).Select
 Else
  s.Areas(2).Select
 End If
 For i = 1 To s.Areas.Count
  If i <> a Then Union(Selection, s.Areas(i)).Select
 Next i
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
37 変数の型宣言(データ型一覧)
    デ  ー  タ  型   サ イ ズ         範          囲
バイト型 Byte 1バイト 0〜255
ブール型 Boolean 2バイト 真(True)または(False)
整数型 Integer 2バイト -32,768〜32,767
超整数型 Long 4バイト -2,147,438,648〜2,147,483,647
単精度浮動小数点数型 Single 4バイト -3.402823E38〜-1.401298E-45
倍精度浮動小数点数型 Double 8バイト -1.797693134836232E308〜
-4.94065645841247E-324
4.94065645841247E-324〜
1.79769313486232E308
通貨型 Currency 8バイト -922,337,203,685,477.5808〜
922,337,203,685,477.5807
10進型 Decimal 14バイト (小数部分を持たない数値の場合)
-79,228,162,514,264,337,593,543,950,335
79,228,162,514,264,337,593,543,950,335
(小数点以下28桁の数値の場合)
-7.9228162514264337593543950335
7.9228162514264337593543950335
(絶対値の最小値は0を除いた場合)
0.0000000000000000000000000001
日付型 Date 8バイト 西暦100年1月1日〜西暦9999年12月31日
オブジェクト型 Object 4バイト オブジェクトを参照するデータ型
文字列型(可変長) String 10バイト+文字列長 0〜2GB
文字列型(固定長)   文字列長 1〜2GB
バリアント型(数値) Variant 16バイト 倍精度浮動小数点数型(Double)と同じ
バリアント型(文字列) Variant 22バイト+文字列長 可変長文字列型(String)と同じ
ユーザー定義型   要素に依存 それぞれの要素の範囲はそのデータ型の範囲と同じ
38 変数の型宣言(型宣言文字)
[ $ ] [ % ] というのは型宣言文字と言って、変数名の後につけるとその型になってくれます。
変数なので、同じコード内に A$ と A% を同時に使用する事はできません。
また、 Option Explicit を指定してあると、有効な型宣言とは見なしてくれないようです。
文字列型(可変長)型  String
% 整数型型         Integer
& 長整数型         Long 
@ 通貨型           Currency 
! 単精度浮動小数点数  Sigle 
# 倍精度浮動小数点数  Double 
39 アドレス取得各種
選択しているセルを変更すると、アドレスを表示します。
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  MsgBox Target.Address()                                
'$A$1形式で表示
  MsgBox Target.Address(RowAbsolute:=False)                     
'$A1形式で表示
  MsgBox Target.Address(RowAbsolute:=False, columnabsolute:=False)      
'A1形式で表示
  MsgBox Target.Address(ReferenceStyle:=xlR1C1)                 
'R1C1形式で表示
  MsgBox Target.Address(ReferenceStyle:=xlR1C1, RowAbsolute:=False, _
                ColumnAbsolute:=False, RelativeTo:=Cells(1, 1))    
'A1からの位置をR1C1で表示
 End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
 Sub test1()
  MsgBox ActiveCell.Address()                               '$A$1形式で表示
  MsgBox ActiveCell.Address(RowAbsolute:=False)                   
'$A1形式で表示
  MsgBox ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)    
'A1形式で表示
  MsgBox ActiveCell.Address(ReferenceStyle:=xlR1C1)                
'R1C1形式で表示
  MsgBox ActiveCell.Address(ReferenceStyle:=xlR1C1, _
  RowAbsolute:=False, ColumnAbsolute:=False, RelativeTo:=Cells(1, 1))     
'A1からの位置をR1C1で表示
 End Sub
 Sub test2()
  MsgBox Selection.Address()                                
'$A$1:$B$2形式で表示
  MsgBox Selection.Address(RowAbsolute:=False)                   
'$A1:$B2形式で表示
  MsgBox Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False)
     'A1:B2形式で表示
  MsgBox Selection.Address(ReferenceStyle:=xlR1C1)
                 'R1C1:R2C2形式で表示
  MsgBox Selection.Address(ReferenceStyle:=xlR1C1, RowAbsolute:=False, _
           ColumnAbsolute:=False, RelativeTo:=Cells(1, 1))     
'A1からの位置をR1C1:R2C2形式で表示
 End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
40 Excel2000で、ヘルプが出ない場合の出し方
http://www.keep-on.com/~excelyou/2000lng4/200008/00080377.txt
  「イベントプロシージャについて」 【VBAラウンジ】
Excel2000
 This Workbookのイベントのヘルプ
    Excelのワークシート上で、
    ヘルプ、Microsoft Excelのヘルプ、目次、
    Microsoft Excel Visual Basic リファレンス(下から9行目)
    Microsoft Excel Visual Basic リファレンス、イベント
 UserForm 及び、各コントロールのイベントについてのヘルプ
    Excelのワークシート上で、
    ヘルプ、Microsoft Excelのヘルプ、目次、
    Microsoft Forms Visual Basic リファレンス(下から5行目)
    Microsoft Forms オブジェクトリファレンス、イベント
 あるいは、
    VBEの画面のヘルプ、Microsoft Visual Basic ヘルプ
    Microsoft Forms リファレンス、Microsoft Forms オブジェクトリファレンス、イベント

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ

このページのTOPへ     

inserted by FC2 system