タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらのお願いをご覧になってください。
1
指定したセルが左上の位置にくるようにするには?
2
データを入力した後、同じセル内でカーソルを矢印で左に移動するには
3 Enterを押した時に移動するセルを変えたい
4 A1セルをクリックすると別シートの範囲が表示されるようにしたい
5
一覧から目当てのシートを選択して、簡単にそのシートにジャンプ
6
シート1のセルの内容と同じシート2のセルの場所にジャンプするには
7 Enterを押した時に移動する方向を変えるには
8
シートの並びを移動するには?
9
特定のセルでエンターした時、他のセルにジャンプするには
10 同一シート内の一致するセルにジャンプするには?
11 指定した列数になるよう、下の行にデータを移動するには?
12 ハイパーリンクで別のファイルのシートのセルを指定するには?
13 Enterを押したとき任意のセルに移動させ、シートごとに設定を変えたい。
14 フォルダ内の全てのエクセルファイルを移動するには?
15 OnKeyメソッドのマクロを、他のシート、他のファイルで実行させない為には
16 ボタンで他のシートに移動するには?
17 セル幅を超える文字列を下のセルに移動するには?
18 Enterを押した時、指定の列だけ移動するには?
19 セルを選択したとき、数式にある参照元のセルに移動(ジャンプ)するには?
20 当月・前月・次月のシート、セルに移動するには?
1 | 指定したセルが左上の位置にくるようにするには? | ||||||||||||||||||||||||||||||
Sub
Test() Application.Goto Range("S10"), True End Sub Goto メソッドの第2引数に True を指定すると、指定したセルが画面左上にきます。 このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
2 | データを入力した後、同じセル内でカーソルを矢印で左に移動するには | ||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 データを入力する時には、下記の2つのモードがあります。 1.入力モード 2.編集(修正)モード 最初にデータを入力する時は、「1.入力モード」の状態にあります。 これらを切りかえるには、[F2]キーを押下してください。 キー操作(Function_Key等)に関しては、[ヘルプ]−[トピック検索]−「キーワード」に、 『キー』と入力し表示すると、色んな操作方法が表示されます。 |
|||||||||||||||||||||||||||||||
3 | Enterを押した時に移動するセルを変えたい 指定の列(例えばE列)までEnterで移動したら、1行下の指定の列(例えばA列)に移動 http://www.keep-on.com/~excelyou/2000lng1/200005/00050011.txt 「Enterを押した時に移動するセルを変えたい」 【編集】 |
||||||||||||||||||||||||||||||
Excel97、Excel2000、Excel2002 共通 入力する範囲を選択する方法。(反転させたままにしておく) ツール、オプション、編集で入力後にセルを移動する方向を右にしておきます。 A1をアクティブにしておいて、A列からE列まで、ドラッグして選択します。 そのまま入力すると、入力した後Enterを押した時右へ移動しますが、 選択範囲(E列)の右端に来た次は、1行下の左端に移動します。 |
|||||||||||||||||||||||||||||||
Excel97、Excel2000、Excel2002 共通 スロールエリアを設定する方法 1. 該当するシートのタブを右クリック、【コードの表示】 2. メニューの、【表示】【プロパティウィンドウ】 出てきたプロパティの、【ScrollArea】に、たとえば、A:J と入力します。 3. 右上の×で、Excelに戻ります。 |
|||||||||||||||||||||||||||||||
マクロでスロールエリアを設定する方法 Sub test() ActiveSheet.ScrollArea = "1:20" '1行目から20行目までで折り返します。 End Sub Sub test() ActiveSheet.ScrollArea = "A:J" 'A列からJ列までで折り返します。 End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 上のコードだと、ファイルを閉じると元に戻ってしまいます。 |
|||||||||||||||||||||||||||||||
マクロでスロールエリアを設定する方法 Sub スクロール範囲限定() Dim M As Object Set M = Application.InputBox(prompt:="スクロールを限定したい範囲を選択してください", Type:=8) ActiveSheet.ScrollArea = M.Address M.Interior.ColorIndex = 8 End Sub Sub スクロール範囲限定解除() Dim EREA As String EREA = ActiveSheet.ScrollArea ActiveSheet.ScrollArea = "" Range(EREA).Interior.ColorIndex = xlNone End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
イベントマクロの方法。下記のマクロを該当するシートに貼り付けてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Column <> 6 Then Exit Sub Application.EnableEvents = False Target.Offset(1, -5).Select Application.EnableEvents = True End Sub ※ 6を7にすると、Fで移動する。 1を2にすると、2行改行する。 -5を-4にするとBに移動する。 このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
OnKeyメソッドを使ったマクロの方法 標準モジュールに登録(全てのシートに適用する場合) Sub 折り返し開始() Application.OnKey "~", "折り返し機能設定" Application.OnKey "{ENTER}", "折り返し機能設定" End Sub Sub 折り返し機能設定() Dim 折返列 As Integer, 開始列 As Integer 折返列 = 5 開始列 = 1 If ActiveCell.Column = 折返列 Then ActiveCell.Offset(1, 開始列 - 折返列).Select Else ActiveCell.Offset(0, 1).Select End If End Sub Sub 折り返し解除() Application.OnKey "{ENTER}" Application.OnKey "~" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 尚、このマクロでは実行すると解除するまで、あるいはExcelを終了するまで、 他のシート・他のファイルにまで適用されてしまいます。 それに関しては、こちらをご覧下さい。 |
|||||||||||||||||||||||||||||||
Sub 折り返し開始() Application.OnKey "~", "S_os" Application.OnKey "{Enter}", "S_os" End Sub Sub 折り返し解除() Application.MoveAfterReturn = True Application.OnKey "{ENTER}" Application.OnKey "~" End Sub Private Sub S_os() Dim myColumn As Integer myColumn = ActiveCell.Column If myColumn = 5 Then 'E列の場合 ActiveCell.Offset(1, -4).Select '1行下の、4つ左のセルに移動 Else 'E列でない場合 ActiveCell.Offset(0, 1).Select '1つ右のセルに移動 End If End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 尚、このマクロでは実行すると解除するまで、あるいはExcelを終了するまで、 他のシート・他のファイルにまで適用されてしまいます。 それに関しては、こちらをご覧下さい。 |
|||||||||||||||||||||||||||||||
4 | A1セルをクリックすると別シートの範囲が表示されるようにしたい | ||||||||||||||||||||||||||||||
Excel97 1.シート2のA1〜B15を選択して、適当な名前を定義する。 (名前ボックスに適当な名前を入力すればOK) 2.そのブックを保存する。 3.シート1のセルA1を選択し、[挿入]-[ハイパーリンク] (またはツールバーの[ハイパーリンクの挿入]をクリック) 4.[ファイル内の位置]の[参照]をクリックし、定義名で先程定義した名前を選択し、[OK]。 |
|||||||||||||||||||||||||||||||
Excel2000 1.シート2のA1〜B15を選択して、適当な名前を定義する。 (名前ボックスに適当な名前を入力すればOK) 2.挿入、ハイパーリンク、ブックマーク、定義された名前を選択します。 |
|||||||||||||||||||||||||||||||
5 | 一覧から目当てのシートを選択して、簡単にそのシートにジャンプ http://www.keep-on.com/~excelyou/2000lng1/200005/00050079.txt 「目当てのシートに簡単にジャンプするには?」 【編集】 |
||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 シート見出しの左にある矢印のボタンを右クリックし 表示されたシート一覧のシート名をクリック |
|||||||||||||||||||||||||||||||
Excel2000 [挿入]−[ハイパーリンク]−[このドキュメント内]という項目で、 同一book内を指定してリンクを貼る Excel97 [挿入]−[ハイパーリンク]−[ファイル内の位置]で、参照を設定します。 |
|||||||||||||||||||||||||||||||
目次用シートを作成し、目次をクリックした時に該当シートにジャンプ 目次用シートに貼ります。 一覧から目当てのシートを選択して右クリックすると、選択したシートに飛びます。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, _ Cancel As Boolean) On Error Resume Next Sheets(Target.Value).Activate: Cancel = True End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 ThisWorkbookをクリックして貼ります。
目次用シートに追加で貼ります。 |
|||||||||||||||||||||||||||||||
6 | シート1のセルの内容と同じシート2のセルの場所にジャンプするには http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010108.txt 「任意のセルをクリックして、他シート(リスト)の共通の場所へ移動するには」 【VBA】 |
||||||||||||||||||||||||||||||
Private
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,
Cancel As Boolean) If IsEmpty(Target) Then Exit Sub Dim MyRng As Range Set MyRng = Worksheets("Sheet2").UsedRange._ Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole) If MyRng Is Nothing Then MsgBox Target.Value & " が見つかりません。", vbExclamation Else Application.Goto MyRng End If Cancel = True End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
Sheet1の、現在アクティブなセル以外をクリックすると、Sheet2のA列の該当するセルに ジャンプします。 Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i As Long, j As Variant, LastRow As Long With Worksheets("Sheet2") LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row j = ActiveCell.Value If j = "" Then Exit Sub For i = 1 To LastRow If .Cells(i, 1) = j Then .Activate .Cells(i, 1).Select Exit Sub End If Next End With End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
Sub
ジャンプ() Dim Target As Variant, j As Long If Not ActiveSheet.Name = "Sheet1" Then MsgBox "Sheet1がアクティブではありません", vbCritical Exit Sub End I f Target = ActiveCell.Value If Target = "" Then MsgBox "検索元が空白です", vbCritical Exit Sub End If On Error Resume Next With Worksheets("Sheet2") j = .Range("A:A").Find(Target).Row '1列目を検索して、該当セルの行を格納 If Err.Number = 0 Then .Activate .Cells(j, 1).Select Else MsgBox "該当セルがありません", vbExclamation End If End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
7 | Enterを押した時に移動する方向を変えるには http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200101/01010003.txt 「このファイルだけEnerキーを右にしたいのですが」 【編集】 |
||||||||||||||||||||||||||||||
現在の移動方向が、右の場合は下に、下の場合は右に変更します。 Sub test() Application.MoveAfterReturnDirection = _ IIf(Application.MoveAfterReturnDirection = xlDown, xlToRight, xlDown) End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
Sub
右方向() Application.MoveAfterReturnDirection = xlToRight End Sub Sub 下方向() Application.MoveAfterReturnDirection = xlDown End Sub Sub 左方向() Application.MoveAfterReturnDirection = xlToLeft End Sub Sub 上方向() Application.MoveAfterReturnDirection = xlUp End Sub Sub 停止() Application.MoveAfterReturn = False End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
8 | シートの並びを移動するには? | ||||||||||||||||||||||||||||||
Moveメソッドを使用すればシートの移動が出来ます。 引数: Beforeを指定すれば指定したシートの前に 引数: Afterを指定すれば指定したシートの後にそれぞれ移動します。 Sub Test() ActiveSheet.Move Before:=Sheets(1) End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
9 | 特定のセルでエンターした時、他のセルにジャンプするには http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200110/01100044.txt 「セルの移動を制限したいのですが」 【編集】 http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200103/01030182.txt 「アクティブセルの移動順」 【編集】 |
||||||||||||||||||||||||||||||
Excel97、Excel2000
共通 A1と、D6と、C10だけをエンターで移動する場合、 まずD6を選択し、Ctrlを押しながら、C10、A1を選択すると、 エンターを押した時、A1→ D6→ C10と、移動します。 |
|||||||||||||||||||||||||||||||
指定のセルのみ移動開始のマクロを実行すると、 エンターを押した時、C5→C6→J6→R6→C18→H18→C5という順番で移動します。 移動解除を実行すると、元に戻ります。 Sub 指定セルのみ移動開始() Application.OnKey "~", "移動設定" 'エンターキーを押した時移動設定のマクロを実行 Application.OnKey "{ENTER}", "移動設定" 'テンキーのエンターキーを押した時実行 End Sub Sub 移動設定() With ActiveCell Select Case .Address(False, False) Case "C6" 'C6セルがアクティブな場合:下へ0行、右へ7列移動 .Offset(0, 7).Select Case "J6" 'J6セルがアクティブな場合:下へ0行、右へ8列移動 .Offset(0, 8).Select Case "R6" 'R6セルがアクティブな場合:下へ12行、左へ15列移動 .Offset(12, -15).Select Case "C18" 'C18セルがアクティブな場合:下へ0行、右へ5列移動 .Offset(0, 5).Select Case "H18" 'H18セルがアクティブな場合:上へ13行、左へ5列移動 .Offset(-13, -5).Select Case Else 'それ以外がアクティブな場合:下へ1行、右へ0列移動 .Offset(1, 0).Select End Select End With End Sub Sub 移動解除() Application.MoveAfterReturn = True Application.OnKey "{ENTER}" Application.OnKey "~" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 尚、このマクロでは実行すると解除するまで、あるいはExcelを終了するまで、 他のシート・他のファイルにまで適用されてしまいます。 それに関しては、こちらをご覧下さい。 |
|||||||||||||||||||||||||||||||
10 | 同一シート内の一致するセルにジャンプするには? http://www.keep-on.com/~excelyou/2000lng4/200010/00100362.txt 「一致するセルにジャンプするには?」 【VBA】 |
||||||||||||||||||||||||||||||
A1のセルに、例えば「50」と入力してEnterを押したら、A2以降の「50」と入ったセルにジャンプします Private Sub Worksheet_Change(ByVal Target As Range) Dim myRange As Range, i As Long With Target If .Address = "$A$1" Then Set myRange = Range(Cells(2, 1), Cells(65536, 1).End(xlUp)) On Error Resume Next i = WorksheetFunction.Match(.Value, myRange, 0) If Err.Number = 0 Then myRange(i).Select Else MsgBox "見つかりませんでした" .Select '不要なら消してね End If End If End With End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
11 | 指定した列数になるよう、下の行にデータを移動するには? http://www.keep-on.com/~excelyou/2000lng1/200010/00100207.txt 「指定した列数に改行するには?」 【編集】 |
||||||||||||||||||||||||||||||
1行目の4列以上のデータを、3列に収まるように2行目以降に移動します。
Sub test() Dim i As Integer Application.ScreenUpdating = False For i = 4 To Cells(1, Columns.Count).End(xlToLeft).Column Step 3 Range(Cells(1, i), Cells(1, i + 2)).Cut _ Cells(Rows.Count, 1).End(xlUp).Offset(1) Next i Application.ScreenUpdating = True End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 sheet1にある A1:I1 のデータを他のシートの A1:C3 に展開するには =INDEX(Sheet1!$A$1:$I$1,1,3*ROW()+COLUMN()-3) とA1に入れて、下及び右方向(A1からC3)へコピーします。 |
|||||||||||||||||||||||||||||||
Excel97、Excel2000 共通 例えば…… A1 から I1 の内容を、A1〜C3 移動する場合 1. A1からI1までコピーして、メモ帳に貼り付ける。 2. メモ帳で3項目ずつ改行し、Excelに貼り付ける。 |
|||||||||||||||||||||||||||||||
12 | ハイパーリンクで別のファイルのシートのセルを指定するには? | ||||||||||||||||||||||||||||||
Excel97 1. 【挿入】、【ハイパーリンク】で、【リンク先のファイル】欄の、【参照】で、目当てのファイルを指定 。 2. 前の画面に戻り、【ファイル内の位置】欄の、【参照】で、シート、セルを入力します。 |
|||||||||||||||||||||||||||||||
Excel2000 1. 【挿入】、【ハイパーリンク】で、ファイル名を指定するか、リストから目当てのファイルを選択。 2. 【ブックマーク】、シートを選んで、セル番地を入力します。 |
|||||||||||||||||||||||||||||||
13 | Enterを押したとき任意のセルに移動させ、シートごとに設定を変えたい。 http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200103/01030182.txt 「アクティブセルの移動順」 【編集】 http://cgi.fuji.ne.jp/~fj2094/cgi-bin2/wwwlng.cgi?print+200105/01050064.txt 「飛ぶ」 【その他】 |
||||||||||||||||||||||||||||||
【移動開始1】【移動設定1】は、設定するシートの数だけ必要です。 Sub 移動開始1() Application.OnKey "~", "移動設定1" 'エンターキーを押した時移動設定のマクロを実行 Application.OnKey "{ENTER}", "移動設定1" 'テンキーのエンターキーを押した時実行 End Sub Sub 移動設定1() With ActiveCell Select Case .Address(False, False) Case "C6" 'C6セルがアクティブな場合:下へ0行、右へ7列移動 .Offset(0, 7).Select Case "J6" 'J6セルがアクティブな場合:下へ0行、右へ8列移動 .Offset(0, 8).Select Case Else 'それ以外がアクティブな場合:下へ1行、右へ0列移動 .Offset(1, 0).Select End Select End With End Sub Sub 移動解除() Application.MoveAfterReturn = True Application.OnKey "{ENTER}" Application.OnKey "~" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 Private Sub Workbook_Activate() If ActiveSheet.Name = "Sheet1" Then Call 移動開始1 End Sub Private Sub Workbook_Deactivate() Call 移動解除 End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 |
|||||||||||||||||||||||||||||||
Sub 設定() Application.OnKey "{ENTER}", "OnEnter" Application.OnKey "~", "OnEnter" End Sub Sub 解除() Application.OnKey "{ENTER}" Application.OnKey "~" End Sub Private Sub OnEnter() Dim vntAry As Variant Dim vntPos As Variant 'ここで、シート別の設定を、対象シートの数だけ記述してください。 Select Case ActiveSheet.Name Case "Sheet1" 'Sheet1がアクティブな場合 vntAry = Array(Array("A7", "B1"), Array("B1", "C8"), Array("C8", "D1")) Case "Sheet2" 'Sheet2がアクティブな場合 vntAry = Array(Array("A10", "B1"), Array("B1", "C11"), Array("C11", "D1")) Case Else '上記以外のシートでは何もしない End Select If IsArray(vntAry) Then For Each vntPos In vntAry If vntPos(0) = ActiveCell.Address(False, False) Then Range(vntPos(1)).Activate Exit Sub End If Next vntPos End If If Application.MoveAfterReturn Then On Error Resume Next Select Case Application.MoveAfterReturnDirection Case xlToLeft ActiveCell.Offset(0, 1).Activate Case xlToRight ActiveCell.Offset(0, -1).Activate Case xlUp ActiveCell.Offset(-1, 0).Activate Case xlDown ActiveCell.Offset(1, 0).Activate End Select On Error GoTo 0 End If End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
14 | フォルダ内の全てのエクセルファイルを移動するには? | ||||||||||||||||||||||||||||||
C:\My
documents\test2
のフォルダ内の、全てのエクセルファイルを
" C:\My documents\test1 のフォルダに移動します。 Sub 全ファイル移動() Dim fs Set fs = CreateObject("Scripting.FileSystemObject") fs.movefile "C:\My documents\test1\*.xls", "C:\My documents\test2\" End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
15 | OnKeyメソッドのマクロを、他のシート、他のファイルで実行させない為には | ||||||||||||||||||||||||||||||
OnKeyメソッドを使ったマクロでは、開始を実行すると終了するまで、 あるいはExcelを終了するまで、他のシート・他のファイルにまで適用されてしまいます。 該当するシート・またはファイルのみ実行したい場合、次のコードを追加します。 このコードを追加した場合、開始を実行する必要はありません。 書き込んで、該当するシートを選択するだけで実行します。 状況に応じて使い分けてください。 【開始1】シートがアクティブになったら実行します ただし、他のファイルから選択してアクティブになった場合は実行されません。 Private Sub Worksheet_Activate() Call 開始 End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 【終了1】シートがアクティブでなくなったら、実行を解除します。 ただし、他のファイルを選択してアクティブでなくなった場合は解除されません。 Private Sub Worksheet_Deactivate() Call 終了 End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 【開始2】ブックがアクティブになったら実行します。 他のファイルから選択してアクティブになった場合も実行します。 Private Sub Workbook_Activate() Call 開始 End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 【終了2】ブックがアクティブでなくなったら、実行を解除します。 他のファイルを選択してアクティブでなくなった場合も解除されます。 Private Sub Workbook_Deactivate() Call 終了 End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 【開始3】ブックがアクティブになったらSheet1でのみ実行します 他のファイルから選択してアクティブになった場合も実行します。 Private Sub Workbook_Activate() If ActiveSheet.Name = "Sheet1" Then Call 開始 End Sub このコードの使い方は、マクロの使い方(3)This Workbookのモジュールにあります。 |
|||||||||||||||||||||||||||||||
16 | ボタンで他のシートに移動するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200107/01070110.txt 「ボタン一発でシート1のA1セルにもどるには?」 【VBAラウンジ】 |
||||||||||||||||||||||||||||||
【ツール】【ユーザー設定】【ツールバー】で、【コントロールツールボックス】にチェックを入れ、 出てきたツールボックスの【ボタン】をクリックして、シートの任意の場所に配置します。 Private Sub CommandButton1_Click() Application.Goto Sheets("Sheet1").Range("A1") End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
17 | セル幅を超える文字列を下のセルに移動するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200108/01080162.txt 「セル幅を越える文字列ははみ出す文字から次の行に表示するには?」 【VBAラウンジ】 |
||||||||||||||||||||||||||||||
プロポーショナルフォント以外(MS 明朝、MS ゴシック)で実行してください。
Sub Test文字分割02() Dim i As Integer, j As Integer Do j = Len(ActiveCell.Value) For i = 1 To j If LenB(StrConv(Left(ActiveCell.Value, i), vbFromUnicode)) > _ Int(ActiveCell.ColumnWidth) Then ActiveCell.Offset(1).Activate ActiveCell.Value = Mid(ActiveCell.Offset(-1).Value, i, j - i + 1) ActiveCell.Offset(-1).Value = Left(ActiveCell.Offset(-1).Value, i - 1) Exit For End If Next Loop Until LenB(StrConv(ActiveCell.Value, vbFromUnicode)) _ <= Int(ActiveCell.ColumnWidth) End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||
18 | Enterを押した時、指定の列だけ移動するには? | ||||||||||||||||||||||||||||||
「指定の列のみ移動」を実行すると、上の表のように指定した列を塗りつぶし、 |
|||||||||||||||||||||||||||||||
19 | セルを選択したとき、数式にある参照元のセルに移動(ジャンプ)するには? http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200202/02020105.txt 「ボタン一発でシート1のA1セルにもどるには?」 【VBAラウンジ】 |
||||||||||||||||||||||||||||||
=Aシート!A9 のような他シートを参照した数式が入ったセルを選択すると参照元セルにジャンプします Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Dim s1 As String, s2 As String, Lp As Integer On Error Resume Next '選択したセルの数式で最初に!の文字が使われている位置を返します Lp = InStr(1, Target.Formula, "!", 1) If Lp = 0 Then Exit Sub '!が使われていない場合は、処理終了 s1 = Mid(Target.Formula, 2, Lp - 2) '数式の中の、シート名を取得 s2 = Right(Target.Formula, Len(Target.Formula) - Lp) '数式の中の参照セル番地を取得 Application.Goto Sheets(s1).Range(s2) '参照セルにジャンプ End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
=Aシート!A9 のような他シートを参照した数式が入ったセルを選択すると参照元セルにジャンプします 参照元シートは、いちばん左側に表示します。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) On Error Resume Next If Target.Column = 4 Then With Sheets(1) '一番左側のシートが対象です Application.Goto .Range(Right(Target.Formula, Len(Target.Formula) - Len(.Name) - 2)) End With End If On Error GoTo 0 End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
おまけです(^^ゞ シート名を指定した場合のコードです Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Dim s As String On Error Resume Next s = Mid(Target.Formula, 7, Len(Target.Formula) - 6) '左から7文字目以降の文字を取得 If Target.Column = 4 Then '選択したセルが4列目(D列)の場合 Application.Goto Sheets("Aシート").Range(s) 'Aシートのsのセルにジャンプ End If End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|||||||||||||||||||||||||||||||
20 | 当月・前月・次月のシート、セルに移動するには? http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200205/02050079.txt 「作業日に該当する特定のSheetを呼び出せますか」 【VBAラウンジ】 |
||||||||||||||||||||||||||||||
Sub
当月セル選択() '現在のシート内の、当月の値のセルを選択 Cells.Find(What:=Format$(Month(Date)) & "月", LookAt:=xlPart).Select End Sub Sub 前月セル選択() '現在のシート内の、前月の値のセルを選択 Cells.Find(What:=Format$(Month(Now())) - 1 & "月", LookAt:=xlPart).Activate End Sub Sub 次月セル選択() '現在のシート内の、次月の値のセルを選択 Cells.Find(What:=Format$(Month(Now())) + 1 & "月", LookAt:=xlPart).Activate End Sub Sub 当月シート選択() Worksheets(Format$(Month(Date)) & "月").Select End Sub Sub 前月シート選択() Worksheets(Format$(Month(Now())) - 1 & "月").Select End Sub Sub 次月シート選択() Worksheets(Format$(Month(Now())) + 1 & "月").Select End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |