Excelノート 99-01 その他

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

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

1  任意のセル以外に入力できなくするには
2  セルに値入力後と同時にマクロを実行させるには?
3  セルの中で改行するには
4  Bookの保護と解除
5  電卓を起動させるには
6  飛び飛びRangeの記述をCellsでするには?
7  ハイパーリンクで別のファイルのシートのセルを指定するには?
8  =を付けずに,セルの中で計算したい
9  履歴ファイルの数を増やしたい
10 ActivateとSelectの違いは?
11 あるセルを基準に任意のセル範囲を指定
12 アクティブセルの値を取得したいのですが
13 セル選択方法各種
14 フォルダのパスを取得するには
15 キーのコードの書き方
16 メモ帳を起動するには
17 現在開いているbook名を取得するには?
18 フォルダ下のすべてのフォルダ内のファイル名を取得しリンクを貼るには
19 "Me." とは、どのような意味を持つのでしょうか?
20 セルに入力してある計算式を表示するには

1 任意のセル以外に入力できなくするには
Excel97、Excel2000 共通
1. 列番号Aの左(行番号1の上)の、空白の所をクリックし、全セルを選択状態にします。
2. 書式、セル、保護で、「ロック」のところのチェックを外します。
3. 保護したいセルを選択し、上の「ロック」の所にチェックを入れます。
4. ツール、保護、シートの保護を選んで、OKです。
入力したい範囲を選択し、書式、セル、保護の、ロックのチェックを外す。
シートタグを右クリック、コードの表示、「挿入」-「標準モジュール」 、右の白い所に下のコードをコピーします
 
Sub Auto_Open()
  With Worksheets("test")  
’ワークシート名を適宜変えてください。
  'ロックされていないセルのみ移動可能に
  .EnableSelection = xlUnlockedCells
  'シートの保護
  .Protect UserInterfaceOnly:=True
  End With
 End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
いったんファイルを閉じて(上書き保存)、再起動します。
2 セルに値入力後と同時にマクロを実行させるには?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target.Address <> "$A$1" Then Exit Sub
  If Target.Value = "" Then Exit Sub
      
'ここに実行したいマクロを書くか、呼び出します
 End Sub
3 セルの中で改行するには
Excel97、Excel2000 共通
 改行したい所で、Alt+Enter 
4 Bookの保護と解除
現在開かれている全てのブック(ただしこのマクロのブック以外)の全てのシートを保護する。
Sub AllProtect()
 Dim Bk As Workbook
 Dim St As Worksheet
 For Each Bk In Workbooks
  If Not (Bk Is ThisWorkbook) Then
   For Each St In Bk.Worksheets
    St.Protect
   Next St
  End If
 Next Bk
 MsgBox "保護完了!!"
End Sub
現在開かれている全てのブック(ただしこのマクロのブック以外)の全てのシートを保護解除する
Sub AllUnprotect()
 Dim Bk As Workbook
 Dim St As Worksheet
 For Each Bk In Workbooks
  If Not (Bk Is ThisWorkbook) Then
   For Each St In Bk.Worksheets
    St.Unprotect
   Next St
  End If
 Next Bk
 MsgBox "保護解除完了!!"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
5 電卓を起動させるには
Sub 電卓()
 Dim ret
 ret = Shell("C:\WINDOWS\CALC.EXE", vbNormalFocus)
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
6 飛び飛びRangeの記述をCellsでするには?
"Union(Range(Cells(1, 1), Cells(7, 2)), Range(Cells(1, 4), Cells(7, 4)), _Range(Cells(1, 6), Cells(7, 7))).Select"
7 ハイパーリンクで別のファイルのシートのセルを指定するには?
まずあらかじめ、指定したいセルに名前をつけておきます。
そして、ハイパーリンクを挿入する際、「ファイル名またはwebページ」を選択してから、右の真中よりちょっと下にある
「ブックマーク」をクリックします。
そうすると、定義された名前の一覧が出ますので、それを選べばOKです。
シートだけ指定する場合は、「ブックマーク」の中の「セル範囲」にシート名の一覧がありますので、それを選びます。
「Book1.xls」内の「Sheet3!A10」にハイパーリンクする場合リンク先は次のように指定します。
C:\My Documents\Book1.xls#Sheet3!A10
(シート名の前に半角で # を挟みます)
8 =を付けずに,セルの中で計算したい
http://www.keep-on.com/~excelyou/2000lng1/200006/00060018.txt
  「=を付けずに、セルの中で計算したい」 【編集ラウンジ】
Excel97、Excel2000 共通
 +10+10のように、頭に+を付ける
Excel97、Excel2000 共通
 メニューの「ツール」「オプション」の「移行」タブで、「式入力を変更する」にチェック
9 履歴ファイルの数を増やしたい
Excel97、Excel2000 共通
 [ツール(T)]−[オプション(O)]−[全般]を開くと、[最近使用したファイルの一覧(R)]の数字を増やす
10 ActivateとSelectの違いは?
Selectは選択する、Activateはアクティブにする、ですから、例えば
A 複数のシートを選択できるが、複数のシートはアクティブに出来ない
  ActiveWorkBook.Sheets(Array(1,2)).Select   'シートを2枚選択    
  ActiveWorkBook.Sheets(Array(1,2)).Activate  'シートを2枚アクティブ 
B アクティブなブックのシートはSelectできるが、非アクティブなブックは
  Select出来ない。Activateは可能(ブックごとアクティブになる)
11 あるセルを基準に任意のセル範囲を指定
[基準セル].[適用範囲]としてやればOKです。
Sub test()
 With ActiveCell.Range("A1:A10")
  .Borders(xlEdgeLeft).Weight = xlThin
  .Borders(xlEdgeTop).Weight = xlThin
  .Borders(xlEdgeBottom).Weight = xlThin
  .Borders(xlEdgeRight).Weight = xlThin
  .Borders(xlInsideHorizontal).Weight = xlThin
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
12 アクティブセルの値を取得したいのですが
A = ActiveCell.Value
13 セル選択方法各種 - マクロでRange("A2:B4")をSelectする方法
Range(Cells(2, 1), Cells(4, 2)).Select
Range("A2:B4").Select
Range("A1:B3").Offset(1, 0).Select
Range(Cells(1, 1), Cells(3, 2)).Offset(1, 0).Select
Range(Cells(2, "A"), Cells(4, "B")).Select        
Range("A2:A" & Rows.Count).Select               'A列の2行目から最終行まで選択
Range("A1:C10").ClearContents
Range("A2") = " "
Range("A3") = " "
Range("B4") = " "
Range("A2").Activate
ActiveCell.CurrentRegion.Select
Set RNG1 = Range("A2:B2")
Set RNG2 = Range("A3:B4")
Union(RNG1, RNG2).Select
Intersect(Range("A:B"), Range("2:4")).Select
Intersect(Union(Rows(2), Rows(3), Rows(4)), Union(Columns(1),Columns(2))).Select
Intersect(Union(Rows(2), Rows(3), Rows(4)), Union(Columns("A"),Columns("B"))).Select
Range(Range("A2"), Range("B4")).Select
Range(Range("A2:B2"), Range("A4:B4")).Select
Union(Range("A2:B2"), Range("A3:B4")).Select
For ROWC = 2 To 4 
 For COLC = 1 To 2
  Union(Selection, Cells(ROWC, COLC)).Select
 Next
Next

これは、マクロボタンを押す前のアクティブセルもセレクションに入ってしまいます
[A2:B4].Select
Range(Cells(2, "A"), Cells(4, "B")).Select
14 フォルダのパスを取得するには
ThisWorkbook.Path で、現在のフォルダが分かるので、続けてデータファイルのフォルダ名を指定します。
15 キーのコードの書き方
http://www.keep-on.com/~excelyou/2000lng4/200009/00090354.txt
  「キーダウンイベントってありますか?」 【VBAラウンジ】
http://www.keep-on.com/~excelyou/2000lng4/200005/00050151.txt
  「OnKeyで/や*文字を反応させるには?」 【VBAラウンジ】
下のコードを、""で囲みます。
 
使用例  Application.OnKey "{ENTER}", "折り返し機能設定"
         こちらの、Enterを押した時に移動するセルを変えたいの中の
        OnKeyメソッドを使ったマクロの方法をご覧下さい
BackSpace
Ctrl + Break
Caps Lock
Clear
Delete または Del
End
Enter (テンキー)
Enter
Esc
Help
Home
Ins
Num Lock
Page Down
Page Up
Return
Scroll Lock
Tab




F1 〜 F15
1〜0
1〜0 (テンキー)
{BACKSPACE}  または  {BS}
{BREAK}
{CAPSLOCK}
{CLEAR}
{DELETE}  または  {DEL}
{END}
{ENTER}
~
{ESCAPE}  または  {ESC}
{HELP}
{HOME}
{INSERT}
{NUMLOCK}
{PGDN}
{PGUP}
{RETURN}
{SCROLLLOCK}
{TAB}
{UP}
{DOWN}
{LEFT}
{RIGHT}
{F1} から {F15}
1 から 0
{97} {98} {99} {100} {101} {102} {103} {104} {105} {96}
任意のキーを Alt キー、Ctrl キー、Shift キーのいずれか 1 つまたは複数と組み合わせて指定できます。
任意のキーを他のキーと組み合わせるときは、次に示すコードを使用します。
 Shift   +
 Ctrl    ^
 Alt    %
キーコードの調べ方 Excel97、Excel2000、Excel2002 共通。
ワークシート上に「コントロールツールボックス」ツールバーから持ってきたテキストボックスを置きます。
そのテキストボックスの KeyDown イベントプロシージャとして次のようなコードを書き込みます。
 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  MsgBox "今押されたキーのキーコード:" & KeyCode
 End Sub

これで、テキストボックス上でキーを押すと、コードが表示されます。
表示されたコードを"{}"で囲んで使用します。

【使用例】
 Sub miko()
  MsgBox Chr(77) & Chr(73) & Chr(75) & Chr(79)
 End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
16 メモ帳を起動するには
Sub メモ帳()
 Dim ret
 ret = Shell("notepad ", vbNormalFocus)
End Sub
17 現在開いているbook名を取得するには?
Sub test()
 Dim objbook As Object
 For Each objbook In Workbooks
  MsgBox objbook.Name
 Next
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
18 フォルダ下のすべてのフォルダ内のファイル名を取得しリンクを貼るには    
Sub ファイル名取得とハイパーリンク()
 Dim Path As String, i As Integer, a As String
 Path = "C:\My Documents"
 With Application.FileSearch
  .SearchSubFolders = True
  .LookIn = Path
  .FileType = msoFileTypeExcelWorkbooks
  .Execute
  For i = 1 To .FoundFiles.Count
   a = Dir(.FoundFiles(i))
   Cells(i, 1).Value = a
   Cells(i, 1).Select
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=.FoundFiles(i)
  Next
 End With
End Sub

このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
19 "Me." とは、どのような意味を持つのでしょうか?
Private Sub CommandButton2_Click()
 Me.Hide
 Me.Tag = vbCancel
End Sub

  このコードの使い方は、マクロの使い方(4)ユーザーフォームのモジュールにあります。
Meは、実行中のコードを所有するオブジェクトを表すキーワードです。
ここでは、UserForm1のコ ードモジュール内でMeが使用されているので、MeはUserForm1を表しています。
20 セルに入力してある計算式を表示するには
Excel97、Excel2000 共通
 [ツール(T)]→[オプション(O)]→[表示]タブの[ウィンドウオプション]で[数式(R)]にチェック

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

このページのTOPへ     

 

 

 

 

 

 

 

 

inserted by FC2 system