Sub AddNewCB() '메뉴만들기 Dim myCommandBar As CommandBar, myCommandBarCtl As CommandBarControl On Error GoTo AddNewCB_Err
Set myCommandBar = CommandBars.Add(Name:="DAWOO Toolbar", Position:=msoBarFloating) myCommandBar.Visible = True
Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 'Top버튼 만들기 With myCommandBarCtl .Caption = "Top" .Style = msoButtonCaption .OnAction = "Selected_Area_SUM_Top" End With
Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 'Bottom버튼 만들기 With myCommandBarCtl .Caption = "Bottom" .Style = msoButtonCaption .OnAction = "Selected_Area_SUM_Bottom" End With
Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 'Trim버튼 만들기 With myCommandBarCtl .Caption = "Trim" .Style = msoButtonCaption .OnAction = "trim_text" End With
Set myCommandBarCtl = myCommandBar.Controls.Add(Type:=msoControlButton) 'Picture버튼 만글기 With myCommandBarCtl .Caption = "Picture" .Style = msoButtonCaption .OnAction = "Picture_Insertion" End With
Exit Sub AddNewCB_Err: Debug.Print Err.Number & vbCr & Err.Description Exit Sub End Sub
모듈을 추가 하여 코드를 넣는다. My_Module
버튼을 클릭시 실행되는 VB 코드임.
Sub Selected_Area_SUM_Top() '선택 맨 위에 합계 넣기 Dim C As Range, T As String For Each C In Selection If C.Address <> Selection.Cells(1).Address Then If Len(T) Then T = T & "+" T = T & C.Address(0, 0) End If Next Selection.Cells(1) = "=" & T End Sub
Sub Selected_Area_SUM_Bottom() '선택 맨 아래 합계 넣기 Dim C As Range, T As String For Each C In Selection If C.Address <> Selection.Cells(Selection.Count).Address Then If Len(T) Then T = T & "+" T = T & C.Address(0, 0) End If Next Selection.Cells(Selection.Count) = "=" & T End Sub
Sub trim_text() '문자열 Trim 하기 Dim rngText As Range, i As Long On Error GoTo er Set rngText = Selection.SpecialCells(xlCellTypeConstants, 2) Select Case MsgBox("문자열을 Trim합니다. 문자열 뒷부분만 Trim할려면 아니오를 " _ & "클릭하세요.", vbYesNoCancel) Case vbYes For i = 1 To rngText.Areas.Count rngText.Areas(i) = Application.Trim(rngText.Areas(i)) Next i Case vbNo For i = 1 To rngText.Areas.Count rngText.Areas(i) = Application.Evaluate("IF(" & _ rngText.Areas(i).Address & "=" & rngText.Areas(i).Address & _ ",REPT("" "",FIND(LEFT(TRIM(" & rngText.Areas(i).Address & "),1)," & _ rngText.Areas(i).Address & ")-1)&TRIM(" & rngText.Areas(i).Address & "))") Next i End Select Exit Sub er: MsgBox "지정된 범위에 문자가 없습니다." End Sub
Sub Picture_Insertion() '사진 넣기 Dim p As Picture Dim i As Integer i = ActiveSheet.Pictures.Count
Application.Dialogs(xlDialogInsertPicture).Show
If i = ActiveSheet.Pictures.Count Then Else Set p = ActiveSheet.Pictures(i + 1) With ActiveCell.MergeArea p.ShapeRange.LockAspectRatio = msoFalse ' 가로세로비율 마춤 해제 p.Left = .Left + 0 p.Top = .Top + 0 p.Width = .Width - 0 p.Height = .Height - 0 End With End If
End Sub
Function AddColor(Rng, CRng) '같은 색만 더하기 For Each C In Rng
If C.Font.ColorIndex = CRng.Font.ColorIndex Then S = S + C.Value
Next
AddColor = S
End Function
다른이름으로 저장
파일이름 : 적당히
파일형식 : Excel 97-2003 추가기능
추가기능 등록은 검색하면 나옴.
이렇게 하고, 엑셀을 다시 시작해도 메뉴가 않나온다. 나도 고생 중.......
VBA 코드 편집기에 가서
현재_통합_문서 더블클릭 후 아래 코드를 넣어줘야. 생깁니다.
Private Sub Workbook_Open() Call AddNewCB End Sub
다시 저장 (VBA 에서 저장)
엑셀 닫고, 다시 열면 짜잔.........
그리고 하나더 팁.
addcolor 추가 하였습니다.
셀에서 =sum(영역선택) 을 하면 합계가 됩니다. 모두 아실내용.
셀에서 =addcolor(A1:A10,A1) 이렇게 하면 A1에 있는 글자색과 같은 것만 합을 구합니다.
.DS_Store 파일은 사용자가 OS X 를 사용하면서 설정한 다양한 정보(예: 아이콘 위치, 폴더 정렬 방식 등의 파일 메타 정보)를 기록하는 파일로서, 원래는 보이지 않아야 정상입니다. (참고로, OS X 는 유닉스 기반의 운영체제이기 때문에 기본적으로 . 으로 시작하는 파일은 보이지 않아야 정상입니다.)
숨겨진 파일이 보이도록 강제로 설정을 변경했다면, 다음 명령을 실행하면 원래대로 숨긴 파일이 표시되지 않도록 할 수 있습니다.
응용프로그램 폴더 > 유틸리티 폴더 > 터미널 실행 후, 아래 명령을 실행합니다.
defaults writecom.apple.FinderAppleShowAllFiles NO
위와 같은 명령을 실행하면, 일단 데스크탑 및 다른 폴더에서 . 으로 시작하는 파일은 보이지 않을 겁니다.
그리고, 로컬 드라이브 상에서 .DS_Store 파일 삭제는 의미가 없습니다. 삭제해 봐야 또 생성되어 집니다. 그래도, 일단 삭제를 원한다면, 터미널에서 다음과 같은 명령을 실행합니다. (아래 명령을 실행하면, OS X 시스템 볼륨의 전체를 검색해서, 모든 .DS_Store 파일 삭제합니다.)
sudo find/-name".DS_Store"-depth-execrm{}\;
위 명령을 실행하면, 로그인된 계정에 대한 암호를 물어보는데, 설정한 암호를 입력하면 됩니다.
만약 자동으로 일정 시간 간격으로 .DS_Store 파일을 검색 및 삭제하고자 한다면, 터미널 실행 후, 다음 명령을 차례로 실행합니다.
sudo crontab-e
암호입력
화살표키로가장마지막줄로커서이동
i키입력후,아래명령어삽입
151***root find/-name".DS_Store"-depth-execrm{}\;
esc키
wq!
위와 같은 명령을 입력하면, 매일 1시 15분에 .DS_Store 파일을 찾아 자동으로 삭제합니다. (Crontab 파일의 마지막 줄은 분, 시간, 날짜, 월, 주간날짜, 명령 순으로 정의합니다. 필요에 따라 변경하면 됩니다.)
마지막으로, 네트워크 볼륨에서 아예 .DS_Store 파일 생성을 차단하려면, 터미널에서 아래 명령을 실행하면 됩니다. (단, 로컬 드라이브는 영향을 받지 않습니다.)