ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュのお手軽マクロ

  • mixiチェック
  • このエントリーをはてなブックマークに追加
これはあると便利っていうお手軽マクロの紹介をしませんか?ショートカットキーとか割り当てて頻繁に使うようなものです。

---

Sub セルの結合()
'
' セルの結合 Macro
' マクロ記録日 : 200x/xx/xx ユーザー名 : xxxxxxxx
'
' Keyboard Shortcut: Ctrl+Shift+C
'
With Selection
.MergeCells = Not .MergeCells
End With
End Sub

コメント(12)

MASAさん、はじめまして。
お手軽マクロ、よいですねえ。

こんなのとか・・・・

Sub 結合解除()
Selection.MergeCells = False
End Sub
ども、田中です(^_^)
では私も1行マクロをおひとつ。

ActiveSheet.DisplayAutomaticPageBreaks = Not ActiveSheet.DisplayAutomaticPageBreaks

印刷とかプレビューとかすると、シートにページ区切りの点線が表示されちゃいますよね。
あれって[オプション]ダイアログからしか消せないので困ります。
んで、私は上のマクロを右クリックメニューに登録しています。
おお、田中さん、ありがとうございます。
3ヶ月ぶりに立ち上がったスレッドが盛り上がって何よりです。引き続きよろしくお願いいたします。
はじめまして、つんどす。
このコミュには少し前から入会(っちゅーんかな?)させてもらってました。
書き込みしたいなー思いながら、よーしませんでした。なんか緊張しちゃったり、ネタもなかったり……
今回ネタが出来たので思い切って書き込みいたします。ネタといっても、田中さんの一行マクロを拝借させてもらったのでそのご報告なんやけど(^^;。
私はページ区切りの線が消せないのも、ヤだなーって思ってましたが、出すのもいちいちページプレビューとかしなくてはいけなくて面倒や!とも思ってました。
で、田中さんのコードを拝見して、「あ、こういうこともVBAで出来るんや」ということで、ページ区切り線の表示・非表示の切り替えマクロを作って(1行じゃなくなったけど(笑))ショートカットに登録いたしました。
ショートカットの登録もしたことなくて「???」だったんだけど、田中さんのHPで勉強させていただきました。
めちゃ便利でございます〜
どうもありがとうございました!

では、お邪魔いたしました。
はじめまして。
とりあえず2つほどネタを・・・
---------
Sub 図形全削除()
For Each sp In ActiveSheet.Shapes
sp.Delete
Next
End Sub
---------
Sub ハイパーリンク全削除()
Cells.Hyperlinks.Delete
End Sub
---------

>>田中亨さん
田中さんのサイトで、自分もいろいろ勉強しました!
お世話になっていますm(__)m
初めまして。

 シートの内容、特に計算式の入っているセルを壊されたくない時にシートの保護をかけたりしますが、複数のシートはひとつひとつ「シートの保護」を実行しなければなりません。そんな時に複数のシートに対して「シートの保護」を実行するマクロです。シートの枚数が何枚でもできるのが、みそです。
----------
'
' シートの保護 マクロ
' マクロ記録日 : 1998/3/26 ユーザー名 : 口車筆無精之助周作
'
'
Sub シートの保護()
I = 0
On Error GoTo Endloop
Do While I >= 0
I = I + 1
Sheets(I).Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Loop
Endloop:
Sheets(1).Activate
End Sub
----------
'
' シートの保護解除 マクロ
' マクロ記録日 : 1998/3/26 ユーザー名 : 口車筆無精之助周作
'
'
Sub シートの保護解除()
I = 0
On Error GoTo Endloop
Do While I >= 0
I = I + 1
Sheets(I).Activate
Application.Goto Reference:="R1C1"
ActiveSheet.Unprotect
Loop
Endloop:
Sheets(1).Activate
End Sub
Accessなんかのレコードをコピー(またはエクスポート)した表を見やすくするため等に使っています。

________________________________________________________
Sub 同じなら結合()
'
' 同じなら結合 Macro
' 同じ値が連続している時上下のセルを結合する
'
'
Dim i As Long, j As Long
Dim myCol As Long

myCol = ActiveCell.Column '現在の列指定
With ActiveSheet
i = 2 '2行目から開始
j = i + 1 'ターゲット行番号
Do While .Cells(j, myCol).Value <> ""
If .Cells(i, myCol).Value = .Cells(j, myCol).Value Then
'同一値では結合
Application.DisplayAlerts = False
.Range(Cells(i, myCol), Cells(j, myCol)) _
.MergeCells = True
Application.DisplayAlerts = True
j = j + 1
Else
i = j
j = j + 1
End If
Loop
End With
End Sub

________________________________________________________

Sub 同じなら消去()
'
' 同じなら消去 Macro
' 同じ値が連続している時二番目以降のデータを消去する
' 同時に上下間の罫線も消去。列のデータが無くなるまでループ
'
Dim i As Long, j As Long
Dim myCol As Long

myCol = ActiveCell.Column '現在の列指定
With ActiveSheet
i = 2 '2行目から開始
j = i + 1 'ターゲット行番号
Do While .Cells(j, myCol).Value <> ""
If .Cells(i, myCol).Value = .Cells(j, myCol).Value Then
'同一値では消去
.Cells(j, myCol).ClearContents
.Cells(j, myCol).Borders(xlEdgeTop) _
.LineStyle = xlLineStyleNone
j = j + 1
Else
i = j
j = j + 1
End If
Loop
End With
End Sub
________________________________________________________


以前、ネット上のどこかで見つけたマクロなんですが、今探してみると見つからなかったです…。

自分の作業的に非常に助かっています。
ひとつ持ちネタを。
全シートでA1セルを選択した状態にして、
さらに1枚目のシートを表示するマクロです。

人にExcelブックを配布するときに便利です。

Sub A1セル選択()
Dim WS As Variant
For Each WS In Worksheets
If Sheets(WS.Name).Visible = True Then
Sheets(WS.Name).Select
Range("A1").Select
End If
Next
Sheets(1).Select
End Sub
> fumさん

最期に1枚目のシートを選択するのであれば、
for〜next文でシートの最期から回す方法もありますね^^
私の個人マクロブックに似たような関数がありますので、周りのコードを省いてちょっと提示してみます。

Sub 全シートのA1セルを選択()
Dim i As Integer
Application.ScreenUpdating = False
For i = Worksheets.Count To 1 Step -1
Sheets(i).Activate
ActiveSheet.Range("A1").Select
ActiveWindow.SmallScroll Down:=65536, Up:=65536, ToRight:=256, ToLeft:=256
Next i
Application.ScreenUpdating = True
End Sub
拡大と縮小。コマンドバーにあるズームコンボボックスや、追加できる画面表示拡大・縮小ボタンでも良いのですが、
・10 % や 400 % にしたい
・ショートカットキーに割り当てたい
ので作りました。私は、拡大を Ctrl+Insert、縮小を Ctrl + Delete に割り当てています。便利です。(^^)
-------------------------------------------------
Public Sub ActiveWindow_ZoomUp()
  Window_EscalationZoom ActiveWindow, 1
End Sub
Public Sub ActiveWindow_ZoomDown()
  Window_EscalationZoom ActiveWindow, -1
End Sub

Private Sub Window_EscalationZoom(ByVal wn As Window, ByVal ZoomOffset As Long)
  Dim arZooms As Variant
  Dim ixZoom As Long
  Dim i As Long
  On Error Resume Next
  
  If ZoomOffset = 0 Then Exit Sub
  
  arZooms = Array(10, 25, 50, 75, 100, 200, 400)
  
  ixZoom = UBound(arZooms)
  For i = 0 To UBound(arZooms) - 1
    If wn.Zoom = arZooms(i) Then
      ixZoom = i
      Exit For
    ElseIf wn.Zoom < arZooms(i + 1) Then
      If Sgn(ZoomOffset) = 1 Then
        ixZoom = i
      Else
        ixZoom = i + 1
      End If
      Exit For
    End If
  Next
  
  ixZoom = ixZoom + ZoomOffset
  If ixZoom < 0 Then
    ixZoom = 0
  ElseIf UBound(arZooms) < ixZoom Then
    ixZoom = UBound(arZooms)
  End If
  
  If Not (wn.Zoom = arZooms(ixZoom)) Then
    wn.Zoom = arZooms(ixZoom)
  End If
End Sub
こんにちは。
お手軽ということなので,気楽に投稿させてください。

その1

Sub AutoFilter()
'
' AutoFilter Macro
' マクロ記録日 : 2006/1/20 ユーザー名 : *******
'
'
Selection.AutoFilter
End Sub

デフォルトのオートフィルタのアイコンでは,オートフィルタにはできる者の,解除はできないですよね。
これを,アイコンに登録しておくと,ワンクリックでON/OFFできます。




その2


Sub Enterで右へ()
'
' Enterで右へ Macro
' マクロ記録日 : 2006/1/20 ユーザー名 : *****
'
'
'
Application.MoveAfterReturnDirection = xlToRight
End Sub

Enterキーを押した後の移動の方向を切り替えるために
オプションからたどるのが結構面倒に感じたので
これもアイコンに登録してます。

下のは,移動を下にするやつです。

Sub Enterで下へ()
'
' Enterで下へ Macro
' マクロ記録日 : 2006/1/20 ユーザー名 : ****
'

'
Application.MoveAfterReturnDirection = xlDown
End Sub

これっぽっちなんですが,私には手放せない状態です。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。