目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
9 / 14 ページ ←次へ | 前へ→

【128】専門の内容とはかけ離れていたので・・・
Access  超初心者きよ  - 05/11/25(金) 17:10 -

引用なし
パスワード
   こちらに投稿することにしました。
始めまして、超初心者きよと申します。

先程も別件でご質問させて頂きました。
(Access質問箱へ質問させて頂いたのですが・・・内容がVBAに関する?
質問でもなかったのに丁寧な回答を頂きました。。。
ありがとうございます。。。Gin_IIさんありがとうございます)。

基本操作のレベルで教えて欲しくて質問させて頂いています。

クエリ作成機能を使ってファイルを作成しました。
(以下は、クエリのデザインからコピーしたSQL文になります)

SELECT STR01_TM_ITEM.* FROM STR01_TM_ITEM;

上記の文章をそのままマクロに貼り付けて実行したところ、
エラーとなってしまいます。
クエリ作成とマクロ記述では、かなりの違いがあるのでしょうか?

基本的な質問で申し訳ございませんが、よろしくお願い致します。
・ツリー全体表示

【127】DAOの参照設定をVBAで
Access  小僧  - 05/11/24(木) 11:09 -

引用なし
パスワード
   DAOも作ってみました。
こちらは最新のものを参照する形にしてみました。

Function DAOの参照設定()
Dim Refs As References
Dim DAOGUID As String
Dim Majo As Long
Dim Mino As Long
Dim i As Long
 
  DAOGUID = "{00025E01-0000-0000-C000-000000000046}"
  Set Refs = Application.References
 
  For i = Refs.Count To 1 Step -1
    If Refs(i).IsBroken Then
      Application.References.Remove Refs(i)
    Else
      If Refs(i).Guid = DAOGUID Then Application.References.Remove Refs(i)
    End If
  Next
  Set Refs = Nothing

  For i = 1 To 3
    Select Case i
      Case 1: Majo = 5: Mino = 0 'DAO3.6
      Case 2: Majo = 4: Mino = 0 'DAO3.5
      Case 3: Majo = 3: Mino = 5 'DAO2.5/3.5
    End Select
    
    On Error Resume Next
    Application.References.AddFromGuid DAOGUID, Majo, Mino
    If Err.Number = 0 Then Exit For
  Next
  
  Select Case Err.Number
    Case 0
      
    Case -2147319779
      MsgBox "DAOのライブラリが見つかりませんでした。"
    Case Else
      MsgBox Err.Description
  End Select
End Function
・ツリー全体表示

【126】Excel の参照設定をVBAで
Access  小僧  - 05/11/24(木) 11:08 -

引用なし
パスワード
   みなさまこんにちは。

題名にある通り、Excelの参照設定を行うコードです。
マクロAutoExec から呼び出すと、自動参照されると思います。

Function Excelの参照設定()
Dim Refs As References
Dim xlsGUID As String
Dim Majo As Long
Dim Mino As Long
Dim i As Long
 
  xlsGUID = "{00020813-0000-0000-C000-000000000046}"
  Set Refs = Application.References
 
  For i = Refs.Count To 1 Step -1
    If Refs(i).IsBroken Then
      Debug.Print Refs(i).Guid
      Application.References.Remove Refs(i)
    Else
      If Refs(i).Guid = xlsGUID Then Application.References.Remove Refs(i)
    End If
  Next
  Set Refs = Nothing

  Select Case SysCmd(acSysCmdAccessVer)
    Case 8: Majo = 1: Mino = 2 'AC97
    Case 9: Majo = 1: Mino = 3 'AC2000
    Case 10: Majo = 1: Mino = 4 'AC2002
    Case 11: Majo = 1: Mino = 5 'AC2003
    Case Else: GoTo ErrEXE
  End Select

  Application.References.AddFromGuid xlsGUID, Majo, Mino
  Exit Function
ErrEXE:
  MsgBox "エクセルの参照設定を手動で行ってください"
End Function
・ツリー全体表示

【125】Re:VisualBasic5とVBA
全般  谷 誠之  - 05/11/8(火) 20:21 -

引用なし
パスワード
   えみ さん、谷です。

>以前学校でVisualBasic5を勉強した事がありますが、エクセルやワード・アクセス
>についてるVBAとは違うのでしょうか?

そうですね、たとえるならば、日本語と中国語ぐらい違います。
つまり「漢字を使うという程度は似ている」わけです。

具体的に書きましょう。
最大の違いは、その目的です。

Visual Basic(VB)は、アプリケーションを作成するためのプログラミング言語です。VBを使って簡単なゲームを作ったり、家計簿ソフトを作ったり、会社の勤怠管理システムを作ったり・・・つまり「パソコンに何らかの仕事をさせる」ためのソフトウエアを作成するのが、VBです。

一方VBAは、ExcelやWordなどを自動化するためのスクリプト言語です。マクロ言語と表現する人もいます。VBAはあくまでもExcelやWordを制御するためのもので、そういったアプリケーションの外に出ることはできません。

で、ひとくちに VBA といっても、アプリケーションごとにすべて違います。
たとえば Excel VBA にはセルを制御する機能があります。Cells(1,"A") と書けば、セルA1を指定したことになります。しかし Word にはセルという概念がありませんから、Word の VBA には Cells という命令(メソッド)は存在しません。

これはひとくちに中国語といっても、北京語や広東語などいくつかの地域語があるようなものです。あるいは日本語の方言のようなものかもしれません。
したがって、「VB を知っているから VBA が使える」というわけではありません。

では、どうしてこのようなまぎらわしい名前がついているのでしょうか。
理由はふたつあります。
ひとつはマイクロソフトのブランド戦略です。同じ「VB」という名前をつけることによって、「VB」という言葉を広め、消費者になじみのあるものにするためです。
もうひとつは、共通点がひとつだけあるからです。それは文法です。
たとえば

 Dim i As Integer
 i = 5

これは変数 i を整数型として宣言し、その変数 i に 5 を代入しています。
このような文法は共通で、VB でも VBA でも利用できます。
・ツリー全体表示

【124】Re:VisualBasic5とVBA
全般  Jaka  - 05/11/8(火) 15:02 -

引用なし
パスワード
   ▼えみ さん:
>以前学校でVisualBasic5を勉強した事がありますが、エクセルやワード・アクセスについてるVBAとは違うのでしょうか?

こんにちは。
VBは、1時間ほど触った程度ですが、似ているようでかなり違います。
エクセルやワード・アクセスのVBAも似ていますが、違います。
根本的なものは同じみたいですが、違います。
エクセルVBAで、回答したりしてますが、ワード・アクセスのVBA解りません。
谷さん、後お願いします。
・ツリー全体表示

【123】VisualBasic5とVBA
全般  えみ  - 05/11/6(日) 16:19 -

引用なし
パスワード
   以前学校でVisualBasic5を勉強した事がありますが、エクセルやワード・アクセスについてるVBAとは違うのでしょうか?
・ツリー全体表示

【122】Re:PowerPointerに利用
全般  初心者  - 05/11/2(水) 22:20 -

引用なし
パスワード
   丁寧な返信ありがとうございます。
まぁ‥PowerPointにVBAは関係ないのかな?

こんなことできますよぉーって発想があったりしたらよければまた教えてください!!
・ツリー全体表示

【121】Re:VBA全くの初心者
全般  谷 誠之  - 05/11/2(水) 0:45 -

引用なし
パスワード
   なおさん、VBA質問箱の主宰者、谷です。

誠におそれいりますが、VBAに関する具体的な質問は、Excel 質問箱に投稿してください。

お手数をおかけしますが、どうぞよろしくお願いいたします。
・ツリー全体表示

【120】Re:PowerPointerに利用
全般  谷 誠之  - 05/11/2(水) 0:43 -

引用なし
パスワード
   >VBAをPOWERPOINTに利用とかは可能でしょうか?

結論から申し上げれば、VBA を PowerPointで利用することは可能です。
しかし私は PowerPoint で VBA を利用したことがありません。

推測の域を出ませんが、「手作業でできることはすべて自動化できる」と思っていただいていいかと思います。
・ツリー全体表示

【119】PowerPointerに利用
全般  初心者  - 05/11/1(火) 23:13 -

引用なし
パスワード
   まだちょっとVBAのまったくの素人で具体的な質問でないかもしれませんが
多めにみてください。(VBAの機能自体ちょっと理解してないのですが‥勉強中です)

VBAをPOWERPOINTに利用とかは可能でしょうか?

POWERPOINTでもマクロ設定等が可能であり、VBAの利用をしてプレゼンでどんな事まで可能なのかなと思いまして‥

初心者の質問で具体性がなくて的を射てなくて回答しずらいかもしれませんがなにとぞよろしくお願いいたします。
・ツリー全体表示

【118】VBA全くの初心者
Excel  なお  - 05/11/1(火) 20:49 -

引用なし
パスワード
   Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If activecell.value <> "" Then Exit Sub
ActiveCell.Value = Time
End Sub

エクセルでブックの新規作成中にこのコードを入力すると有効に作動するのですが、一度保存して開いてダブルクリックをしても作動しません。
VBA全くの初心者です。どなたか教えていただけないでしょうか。
・ツリー全体表示

【117】Windows98とOffice2000の相性
Excel  Jaka  - 05/11/1(火) 10:57 -

引用なし
パスワード
   Windows98や95を使っている人は、ほとんどいなかったりすると思いますが....。

Office 2000 のインストール後、ファイル名が "ff" で始まるファイルが Windows フォルダに作成される
http://support.microsoft.com/default.aspx?scid=kb;ja;221438

起動ごとに Windows フォルダに 0 バイトの一時ファイルが作成されますWindows を起動するたびに Windows フォルダに
ffa0bc77_{xxx (省略) xxx}.tmp といった名前をもった 0 バイトのファイルが作成されることがあります。

上記のような記事を1度は、テキストにコピペしておきながらほとんど目を通していなかった為、
こんな名前のファイルを
ffe0d5cf_{18CB1562-E51E-474D-B548-7A6266559255}.tmp
ffe0d5cf_{D6AFE596-448A-45B9-B242-02BEA26C131A}.tmp
ffe0d947_{8033A458-92E6-41DE-BE70-0CA93616A817}.tmp
ffe0d947_{C24F8555-06C1-4266-9A70-BE8DB690FAE4}.tmp

IBMノートについてくるCocfigSafeが作っていると勘違いして、今まで中身の無いファイルを3、4ヶ月も後生大事に持っていました。
昨日ふとこの記事が目に付いて、全く必要の無い事が解ったのですが、レジストリをいじる気がしなくてエクセルで削除してもらおうと下記のようなコードを書きました。
アドイン、マクロブックのAuto_open、closeやWorkbook_Open、closeで使うと消してくれます。

Sub ffe_TmpDelete()
  Dim Fn As String
  'Win98のみ対象、95の分も追加
  If Application.OperatingSystem <> "Windows (32-bit) 4.10" And _
    Application.OperatingSystem <> "Windows (32-bit) 4.00" Then Exit Sub
  pas = "C:\Windows\"
  Do
    Fn = Dir(pas & "ffe0d*}.tmp")
    If Fn <> "" Then
      Kill pas & Fn
    Else
      Exit Do
    End If
  Loop
End Sub

Sub ffe_TmpDeleteDOS版()
  Dim DfDr As String, ComL As String, pas As String
  'Win98のみ対象
  If Application.OperatingSystem <> "Windows (32-bit) 4.10" Then Exit Sub
  DfDr = CurDir()
  pas = "C:\Windows"
  ChDir pas
  ComL = "COMMAND.COM /C del ffe0*}.tmp"
  Call Shell(ComL, vbHide)
  ChDir DfDr
  DoEvents
End Sub
・ツリー全体表示

【116】シート上アクティブXコントロールのマルチ...
Excel  Jaka  - 05/10/14(金) 10:47 -

引用なし
パスワード
   その3 シート上アクティブXコントロールのマルチページとリストボックス

・シート上にマルチページの作るには。
 コントロールツールボックスのコントロールの選択の中から、「Micrsoft Forms 2.0 MultiPage」を選んで作成。

・マルチページの上にリストボックスボタンを作るには。
 デザインモードにしてから、
 マルチページを右クリック → マルチページオブジェクト → 編集
 で、出てきたツールボックスから作る。
 この辺りはフレームjと同じです。

・ページの増減、タブ名の変更は、タブを右クリックすれば編集できます。

---------------------------------
マルチページのページ枚数が4枚、各ページにリストボックスがあったとして。

尚、コードの書き方に With〜End With 使ったり使わなかったり、
シートから記述してあったり無かったり、、とか、
リスト項目の作成時に、1つのFor..Nextステートメントの中に「AddItem」、「配列」、「RowSource」
などごちゃ混ぜに入れてますが、色々なパターンを紹介したいが、区分けして書くのが面倒だったので、節操無くごちゃ混ぜにし、しかもメモ書き状態のままで色々載せてみます。
全標準モジュールから、シートモジュールで使える??
余計に解りづらかったらすみません。

注).Pages(i).Controls(0)
  の場合、ページ番号やリストボックスのControls番号が一致していないとエラーになります。
  マルチページに作ったオブジェクトの種類なども注意してください。


・現在選択されているページ番号の取得
Sub 選択されているページ()
  PGNo = Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Value
  MsgBox Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(PGNo).Caption & vbLf & _
      "選択ページ " & PGNo + 1 & vbLf & _
      ".Value は、" & PGNo
End Sub


・2ページ目のリストボックスの場合
Sub リストボックスリスト作成1()
  Dim OBJ As Object
  Application.EnableEvents = False
  For Each OBJ In Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(1).Controls
   If OBJ.Name = "ListBox2" Then
     OBJ.List = Worksheets("Sheet1").Range("C1:C5").Value
     Exit For
   End If
  Next
  Application.EnableEvents = True
End Sub


・全ページ(4ページ)の場合
Sub リストボックスリスト作成2()
  'Pagesは、0から
  Dim TB() As String, TB2() As String
  For i = 0 To Sheets("Sheet1").OLEObjects("MultiPage1").Object.Pages.Count - 1
    Select Case i
      Case 0
        '.Value使用
        Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(i).Controls(0).List = Range("A1:A10").Value
      Case 1
        'AddItem
        For ii = 1 To 10
          Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(i).Controls(0).AddItem Cells(ii, 2).Value
        Next
      Case 2
        '配列使用(1次元、2次元可)
        'ReDim TB(1 To 10, 1 To 1)
        ReDim TB2(1 To 10)
        For ii = 1 To 10
          'TB(ii, 1) = Cells(ii, "C").Value
          TB2(ii) = Cells(ii, "C").Value
        Next
        Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(i).Controls(0).List = TB2
        Erase TB2
      Case 3
        'RowSource使用
        Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(i).Controls(0).RowSource = "Sheet1!A15:A20"
    End Select
  Next
End Sub


・リストボックス内容消去
Sub 全ページListBox消し()
  With Worksheets("Sheet1").OLEObjects("MultiPage1").Object
    For i = 0 To .Pages.Count - 1
      'ListBoxのIndexが、全て0ならこれで良い。
      '.Pages(i).Controls(0).Object.Clear
      For ii = 0 To .Pages(i).Controls.Count - 1
        If TypeName(.Pages(i).Controls(ii)) = "ListBox" Then
          '↓ RowSource設定されていた場合を考えて入れた。
          .Pages(i).Controls(ii).RowSource = vbNullString
          '注)Clearは、RowSourceで設定されていた場合は、エラーになる。
          .Pages(i).Controls(ii).Object.Clear
        End If
      Next
    Next
  End With
End Sub


・コンボボックスのリスト作成
Sub コンボボックスリスト作成直書き()
  '配列仕様(注)Pagesは、0から
  Dim CbTb As Variant
  CbTb = Array("Combo_01", "Combo_02", "Combo_03", "Combo_04", "Combo_05")
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").Object.Value = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").Object.List = CbTb
  'X Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").Object.FontSize = "9pt MS Pゴシック"
  Erase CbTb
  
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2).Controls("ComboBox2").Object.Value = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2).Controls("ComboBox2").RowSource = "Sheet1!B14:B20"
End Sub


・コンボボックス内容の消去
Sub コンボボックスリスト消し直書き()
  '(注)Pagesは、0から、.Objectは、無くても動いた。
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").Value = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").RowSource = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0).Controls("ComboBox1").Clear

  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2).Controls("ComboBox2").Object.Value = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2).Controls("ComboBox2").RowSource = ""
  Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2).Controls("ComboBox2").Object.Clear
  
  PGNo = Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Value
  MsgBox "選択ページ " & PGNo + 1 & vbLf & _
      ".Value は、" & PGNo & vbLf & _
      Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(PGNo).Caption
End Sub


・選択されたオプションボタン名の取得
Sub オプションボタン取得()
  '2Pege (注)Pagesは、0から
  Dim Flg As Boolean
  With Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(2)
    For i = 0 To .Controls.Count - 1
      If TypeName(.Controls(i)) = "OptionButton" Then
        rtgh = .Controls(i).Value
        If .Controls(i).Value Then
         No = i
         Flg = True
        End If
      End If
    Next
    If Flg Then
      'i を使うなら、Forで、1プラスされるから -1する。
      MsgBox .Caption & vbLf & _
         .Controls(No).Caption
    Else
      MsgBox "OptionButtonチェック無。"
    End If
  End With
End Sub


・テキストぼっクの内容取得と消去
Sub テキストボックス()
  With Worksheets("Sheet1").OLEObjects("MultiPage1").Object.Pages(0)
    MsgBox .Controls("TextBox1").Object.Value & vbLf & _
        "メッセージボックス閉じた後消します。"
    .Controls("TextBox1").Object.Value = ""
  End With
End Sub


全然まとまってませんが、大体こんな感じだということでお願いします。

フレーム、マルチページ上に作ったCommandButtonのコードは、わかりません。
クリックイベントも無いようですし、マクロ登録できるのかも解りませんでした。
・ツリー全体表示

【115】フレームのバックカラー、フォントカラー変...
Excel  Jaka  - 05/10/14(金) 10:42 -

引用なし
パスワード
   フレームのバックカラー、フォントカラー変更手順
(ユーザーフォーム上と同じで、マルチページは、各ページの色を変更できないみたいでした。)

 フレームを右クリック → プロパティ を開く
 BackColor の番号(000000ff - Unknown)見たいなものを控えておき、
 これをオプションボタン等のプロパティに使います。
 フォントの色も同じように調べてください。少し面倒。

バックカラー(フレームの場合)
000000ff - Unknown デフォルト
000000ff - Unknown 赤
00000080 - Unknown ブラウン

フォントカラー(フレームの場合)
00ffffff - Unknown 白
80000012 - Button Text 黒デフォルト
・ツリー全体表示

【114】シート上アクティブXコントロールのタブス...
Excel  Jaka  - 05/10/11(火) 12:29 -

引用なし
パスワード
   その2 シート上アクティブXコントロールのタブストリップ(TabStrip)

・シート上にタブストリップの作るには。
 コントロールツールボックスのコントロールの選択の中から、「Micrsoft Forms 2.0 TabStrip」を選んで作成。

・タブストリップのページが複数合っても、配置した1つのコントロールを共通で使います。
 例えば、リストボックスを1つ配置した場合、ページを切り替えても、同じリストボックスが表示されたままです。

・不可解
 マクロでタブ名を変更後、シートを切り替えると、なぜかブック起動時の状態に戻ってしまう。
 マウスポインタをタブストリップ上に持っていくと、変更した状態になる。
 ブック起動後は、前回保存した時の状態のままだが....。

by Win98se & EXCEL2000 SR-1
  Win2000SP3 & EXCEL97 SR-2

----------------------------------
タブストリップ上にリストボックスを1つ作ったとして。
1,2は、シートモジュール、標準モジュールどちらからでも変更できます。

○タブ名の変更

1、
Sub タブ名変更()
  With Sheets("Sheet1").TabStrip1
    For i = 0 To .Tabs.Count - 1
      .Tabs(i).Caption = "タブ" & (i + 1)
    Next
    'ここから下、タブ名変更がすぐに反映されない為に必要。
    'PCスペック、エクセルバージョン等による?
    If Val(Application.Version) = 8 Then
      ActiveCell.Activate '97だと無いとエラーになる。
    End If         '2000で、エラーになるか未確認の為、97専用にしました。
    .Activate
  End With  
  ActiveCell.Activate
  DoEvents
End Sub

2、
Sub タブ名変更OLE版()
  With Worksheets("Sheet1").OLEObjects("TabStrip1")
    For i = 0 To .Object.Tabs.Count - 1
      .Object.Tabs(i).Caption = "OLE" & (i + 1)
    Next
    'ここから下、タブ名変更がすぐに反映されない為に必要。
    'PCスペック、エクセルバージョン等による?
    If Val(Application.Version) = 8 Then
      ActiveCell.Activate '97だと無いとエラーになる。
    End If         '2000で、エラーになるか未確認の為、97専用にしました。
    .Activate
  End With  
  ActiveCell.Activate
  DoEvents
End Sub

3、
シートモジュールに書く場合、Worksheets("Sheet1")等は、省いても可。

Private Sub CommandButton1_Click()
  TabNm = Array("Tab1", "Tab2", "Tab3")
  With TabStrip1
    For i = 0 To .Tabs.Count - 1
      .Tabs(i).Caption = TabNm(i)
    Next
    'ここから下、タブ名変更がすぐに反映されない為に必要。
    'PCスペック、エクセルバージョン等による?
    If Val(Application.Version) = 8 Then
      ActiveCell.Activate '97だと無いとエラーになる。
    End If         '2000で、エラーになるか未確認の為、97専用にしました。
    .Activate
  End With  
  ActiveCell.Activate
  DoEvents
End Sub


○タブ上リストボックスのリスト作成
 タブ切り替え時にリスト内容が変わるようにする為には、
 1つのリストボックスの内容を切り替え時に都度書き換えます。
 注)リストボックスの内容とリストボックスの高さが合わない場合、
   勝手にリストボックスサイズが、縮小されてしまうのを防ぐ為に
   ListBoxの「IntegralHeightプロパティ」を、Falseにしておいた方が良いです。

タブが3つあったとして。

Private Sub TabStrip1_Change()
  If TabStrip1.Value = 0 Then
    CelAd = "A1:A10"
  ElseIf TabStrip1.Value = 1 Then
    CelAd = "B1:B10"
  Else
    CelAd = "C1:C10"
  End If
  ListBox1.List = Range(CelAd).Value
End Sub

配列とAddItem の使用(タブは2つとして)

Private Sub TabStrip1_Change()
  Dim ListTB As Variant
  ListTB = Array("配列0", "配列1", "配列2", "配列3", "配列4", "配列5")
  Sheets("Sheet1").ListBox1.Clear
  If TabStrip1.Value = 0 Then
    Sheets("Sheet1").ListBox1.List = ListTB
    Erase ListTB
  Else
    For i = 0 To 8
      Sheets("Sheet1").ListBox1.AddItem "AddItem" & i
    Next
  End If
End Sub


○リストボックス選択項目抽出
 通常の取り出し方で良いようです。

1、
Private Sub CommandButton1_Click()
  With ListBox1
    If .ListIndex >= 0 Then
      MsgBox .List(.ListIndex)
    Else
      MsgBox "リストボックス項目が選択されてません。"
    End If
  End With
End Sub

2、OLE版
Sub リストボックス選択項目抽出OLE版()
  With Worksheets("Sheet1").OLEObjects("ListBox1").Object
     If .ListIndex >= 0 Then
      MsgBox .List(.ListIndex)
     Else
      MsgBox "リストボックス項目が選択されてません。"
     End If
  End With
End Sub
・ツリー全体表示

【113】シート上アクティブXコントロールのフレー...
Excel  Jaka  - 05/10/11(火) 11:43 -

引用なし
パスワード
   その1 シート上アクティブXコントロールのフレーム(Frame)とオプションボタン

・シート上にフレームの作るには。
 コントロールツールボックスのコントロールの選択の中から、「Micrsoft Forms 2.0 Frame」を選んで作成。

 注)作ったフレーム上にアクティブXコントロールのOptionボタンを作っても、
   1つ1つのパーツでしかないためか、デザインモードを解除すると、
   なぜかボタン類が後ろに隠れてしまう。

・フレームの上にOptionボタンを作るには。
 デザインモードにしてから、
 フレームを右クリック → フレームオブジェクト → 編集
 で、出てきたツールボックスから作る。

・作ったOptionボタンのCaptionを編集するには。
 フレームを上記、編集状態にして、Optionボタン右クリック → プロパティ
 で、変更できます。

----------------------------------
○上記方法で作ったOptionボタンのCaptionを取得する。

下の1,2のコードは、フレームがあるシートモジュール、標準モジュールのどちらからでも取得できます。
シート上コマンドボタンの場合、プロシジャー名を
Private Sub CommandButton1_Click()
等に置き換えてください。

by Win98se & EXCEL2000 SR-1
  Win2000SP3 & EXCEL97 SR-2

1、
Sub 選択されたフレーム上OPTボタンのCaption取得()
  With Worksheets("Sheet1").Frame1
    For i = 0 To .Controls.Count - 1
      If .Controls(i).Value Then
        MsgBox .Controls(i).Caption
        Exit For
      End If
    Next
  End With
End Sub

2、
Sub 選択されたフレーム上OPTボタンのCaption取得OLE版()
  With Worksheets("Sheet1").OLEObjects("Frame1").Object
    For i = 0 To .Controls.Count - 1
      If .Controls(i).Value Then
        MsgBox .Controls(i).Caption
        Exit For
      End If
    Next
  End With
End Sub
・ツリー全体表示

【112】シート上のアクティブX(ActivX)コントロ...
Excel  Jaka  - 05/10/11(火) 11:35 -

引用なし
パスワード
   シート上アクティブXコントロールについての、コードが書いてあるところが意外と少ないと思いませんか?
(ろくな検索をしてない!)
特にフレーム、タブストリップ、マルチページは....。
そこで、ちょこちょこテストして、なんとなく解った事だけを記載していきたいと思います。

尚、コードのパターンが毎回違ったり、戯けた事が記載してあったり、理解しづらくてもご了承ください。
もっと効率の良いコードや方法があると思いますので、手法の1つと思ってください。
やっぱり解らなくて途中で放り投げるかもしれませんから、誰かが続いてくれるのを期待してます。
・ツリー全体表示

【111】Re:VBA
全般  谷 誠之  - 05/10/6(木) 2:54 -

引用なし
パスワード
   >それ以外のことはお分かりになりませんか?

残念ながら、それ以上の情報はありません。
・ツリー全体表示

【110】Re:VBA
全般  手羽先クウ  - 05/10/6(木) 0:40 -

引用なし
パスワード
   ▼谷 誠之 さん:
>VBAは基本的に、以下のソフトウエアで利用可能です。
>
> Microsoft Excel
> Microsoft Access
> Microsoft Word
> Microsoft PowerPoint
> Microsoft Outlook
>
>ほかのソフトウエアでも利用可能かもしれません。
 
それ以外のことはお分かりになりませんか?
・ツリー全体表示

【109】Re:VBA
全般  谷 誠之  - 05/10/5(水) 23:19 -

引用なし
パスワード
   VBAは基本的に、以下のソフトウエアで利用可能です。

 Microsoft Excel
 Microsoft Access
 Microsoft Word
 Microsoft PowerPoint
 Microsoft Outlook

ほかのソフトウエアでも利用可能かもしれません。
・ツリー全体表示

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
9 / 14 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free