VBA에서 현재 보고 싶은 시트를 확인할 때.

학습/엑셀 VBA|2014. 2. 8. 10:59
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

workbook.ActiveSheet 을 이용하면 된다.



현재 시트의 이름을 확인하는 예제.

MsgBox "The name of the active sheet is " & ActiveSheet.Name



댓글()

엑셀 VBA 폴더 여부 확인

학습/엑셀 VBA|2012. 11. 15. 19:38
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
오랫만에 글을 쓰네요

VBA에서 폴더가 있는지 없는지 여부를 알려면!!!!


Dir 기능을 사용하면 된다.


  Dir("폴더 경로",vbDirectroy)   '폴더 경로에 폴더가 있으면! 폴더명을 리턴하고, 없으면 ""값을 리턴한다. 



만약 C:\Err 란 폴더에 파일을 복사하고 싶은데.. 폴더가 있는지 없는지 모르겠다면 아래와 같이 작업하면 된다.


 if (Len(Dir("C:\Err",vbDirectroy)) <= 0 )

'폴더가 없다는 이야기입니다. 폴더를 생성하죠

MkDir("C:\Err")

end if




Dir 펑션은 그저 폴더만 아니라 각종 파일 형태를 확인할 수 있습니다.

뒤에 옵션을 수정해서 사용하시면 됩니다.

옵션은 아래와 같습니다.



 Constant

 설명 
 vbnormal  Default. Specifies files with no attributes.
 vbReadOnly  Specifies read-only files in addition to files with no attributes.
 vbHidden  Specifies hidden files in addition to files with no attributes.
 vbSystem  Specifies system files in addition to files with no attributes.
 vbVolume  Specifies volume label; if any other attribute is specified, vbVolume is ignored.
 vbDirectory  Specifies directories or folders in addition to files with no attributes.
 vbArchive File has changed since last backup.
 vbAlias File has a different name.



더 상세한 내용은 msdn을 참조


http://msdn.microsoft.com/en-us/library/dk008ty4(v=VS.71).aspx



댓글()

디아블로3 UI 디자인 관련 내용

학습|2012. 9. 10. 19:16
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

디아블로3의 UI에 관한 내용이다.


현재 트랜드와 다르게 갔던 UI의 특징들을 집어내고 관련 내용을 기술한 멋진 글이다. @_@;


나도 저런 멋진 글을 쓸만한 내공이 쌓였으면... ㅋ


http://blog.daum.net/gdocument/287

댓글()

UX 디자인책

학습|2012. 9. 7. 02:14
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오홍 간만에 서점에가서 책을 샀는데 꽤 괜찮은 것 같다.




사람에 대한 100가지 사실

저자
수잔 웨인쉔크 지음
출판사
위키북스 | 2012-02-28 출간
카테고리
컴퓨터/IT
책소개
『사람에 대한 100가지 사실』은 무엇이 사람들로 하여금 어떤 ...
가격비교


볼만한듯! 보기도 전혀 힘들지 않다.  UX란 뭔지 알켜주는 책인듯

댓글()

ActionScript 3.0 에서 더블클릭 작동

학습|2012. 9. 7. 01:51
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ActionScript 3.0에서 더블 클릭 이벤트는 받는 쪽에서 doubleClickEnabled라는 옵션이 true에야 작동한다.


잊지말자...


Exam


Box.dobleClickEnabled=true;


Box.addEventListener(MouseEvent.DOUBLE_CLICK,runEvent)



댓글()

무작정 시작하는 Flash CS 5 / ActionScirpt 3.0 시작!! 1화) 클릭 구현하기!

학습|2012. 9. 7. 01:39
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

아 요즘 플래쉬랑 ActionScript를 배우고 싶다고 생각했는데...

음냐리 책들이 왜이리 개론이 많고 알아듣기 힘든지 모르겠다...

그래서 그냥 혼자 공부하려고 한다. (책은 있다.ㅋ 사왔음)


(이거 보고 하고 있다.)


액션스크립트 강의노트

저자
김기민 지음
출판사
가메 | 2012-02-17 출간
카테고리
컴퓨터/IT
책소개
웹 디자이너이자 개발자 김기민의 『동적 인터페이스에 도전하는 김...
가격비교



뭐 앞에 개념들 다 넘기고 내가 만들고 싶은 것들만 하나씩 구현해보면서 하려고 한다.

사실 높은 수준을 구현하려면 모든 개념을 알고 시작해야겠지만...

그 전에 내가 지칠듯.... 우엉;; 


그래서 구현 중심으로 작업을 시작하려고 한다.  (난 Flash도 처음 써본다. ^-^;;)


아래 글은 내가 나중에 다 잊고서 다시 시작하더라도 쉽게 할 수 있도록 하기 위한 기록들이다.


---맨 처음은 박스를 클릭하여 텍스트 출력하기!!!---


1) 먼저 Flash를 구동한다. (아이콘 더블 클릭)


2) Flash에서 ActionScript 3.0 를 선택하여 새로운 플래쉬 파일을 만든다.


  (아래 파랗게 칠한부분을 클릭하여 ActionScript 3.0 파일을 만든다.)

  (.. 다른 걸로 생성해도 될지 안될지는 모르겠다. 안된다고 가정하자! ㅋ)


 

3) 오오 하얀 화면이 뜰 것이다. 거기에 박스를 만들자!!!

 박스는 가장 오른쪽에 보면 박스 같은 놈 있다. 그 버튼을 클릭 후에, 햐안 부분에 가서 마우스를 클릭~드레그하여 박스를 만들 수 있다.

 (이거 못 만들겠음... 그냥 동영상 강의 찾아보시길 ㅋ)






4) 그리고 화면에 출력될만한 글자 위치를 만들자

글자는 아까 박스 위에 위에 T자 버튼을 클릭 후, 화면에 마우스를 클릭하고 글자를 쓴다.

글자는 아무거나 원하는데로 쓴다.






자! 그럼 이제 버튼 클릭을 구현할 수 있는 기본적인 상태가... 아직 안되었구나


박스와 글자에 부분에 이름을 붙여 줘야 한다.


근데 박스는 Symbol을 만들어줘야 한다.

뭐 다른 의미가 있겠지만... 개인적으로는 ActionScirpt 3.0으로 조절하려면 Symbol이 되어야 한다.

근데 박스는 Symbol이 아니다. ㅠㅠ


5) 심볼, 만드는 법은 간단하다.

먼저 선택버튼으로 박스를 선택한다.

그다음 우클릭하면 매뉴가 나오면, Conver to Symbol을 클릭한다.



7) 그럼 아래 창이 나온다. 박스를 지칭할 이름을 결정하자! 그리고 그냥 OK를 누른다.

(원하는걸루 나는 Box를 추천한다. 내가 그렇게 쓸꺼니칸 ㅋㅋ)



9) 아까 써진 텍스트에도 이름을 주어야 한다. 이미 심볼인듯 따로 Convert는 필요 없다.

 하지만 아래처럼 먼저 선택하고 이름을 붙여 주자.

(원하는 걸로 해도 되나, TextBox1을 추천한다. 내가 그렇게 쓸꺼니깐.)




8) 어!... 근데 박스에 이름이 잘 안들어가 있네...Convert to Symbol 떄 이름 붙이는 걸로는 안되나보다...

그거랑 인스턴스 이름이랑은 다른 건가보다..제길슨. 귀찮지만 박스를 클릭하고 인스턴스 이름을 붙이자.

텍스트에 이름 붙이는 것과 같으니... 따로 설명하지 않겠다.



10) 그리고 이제 선택을 취소해야 한다. (박스도 글자도 선택 안되야 한다!)

아무 흰 배경을 클릭하고 F9키를 눌러보자.

아래와 같은 화면이 나올 것이다.

우와! 여기다 스크립트를 입력하면 된다.!!!!



입력할 스크립트는 아래와 같다.




import flash.events.MouseEvent;


Box.addEventListener(MouseEvent.CLICK,clickHandler)


function clickHandler(e:MouseEvent):void

{

TextBox1.text = "Click 되었다!"

}



대소문자를 구분하니 조심하자.


스크립트를 설명하면...



이렇다. 자세한 내용은 책이나 다른걸 봐라



자~! 힘들게 썼는데 확인해야죠!!


CTRL + ENTER를 쳐봐라!

잘 실행될꺼다~ 안되면... 몰라~ 난 되었으니 ㅋㅋㅋ

아.. 근데 이렇게 간단한 것도 세세히 쓰니 너무 길다;;

다음에는 코드나 이런걸로 간단히 써야할듯하다....

혹시 다른 사람들도 볼까 해서 더 써놨는데.. 익히는 것보다 이게 더 시간 오래걸린다.. ㅠㅠ








댓글()

엑셀 VBA 속도 향상! (서식계산 옵션 VBA로 변경하기)

학습/엑셀 VBA|2011. 12. 23. 17:11
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
오랫만에 글을 남기네요;;

VBA로 데이터를 자동으로 기록 수정하는 것들을 할 때마다 여러개의 값을 변경하는 경우들이 생깁니다.

그럴 경우에는 FOR문을 막 돌리면서 시트의 데이터를 수정하게 되지요

근데... 문제는 시트에 수식이 걸려져 있을 경우 엄청나게 느려진다는 것입니다!

그럴 경우에는 아래처럼 옵션 변경을 이용하세요.

'함수 시작부분에는...
Application.Calculation = xlCalculationManual

'끝날 때에는
Application.Calculation = xlCalculationAutomatic


위의 내용은 엑셀의 자동 수식 계산을 껏다가 다시 키는 옵션입니다.
이런 옵션을 키면 왜 빨라지느냐?

엑셀에서 수식자동 계산 옵션이 켜져 있을 경우에 
데이터가 하나 변경되게 되면, 거기에 연결된 모든 수식 테이블을 다시 계산하도록 합니다.

그런데.. VBA로 각 값을 하나씩 수만번 되돌리면서 고치고 있다면...
거기에 연결된 수식들도 다시 수만 번 반복하고 있다는 이야기지요;;;

그러니깐 함수를 이용하기 전에 잠시 옵션을 껏다가 다시 키는겁니다.

>ㅁ</ 전 이거 몰라서 매일 옵션을 서식 수동 계산으로 해놓고 쓰고 있었죠;;;

그러다가 실수로 옵션이 변경되면...... WHAT THE FUCK!!!

ㅎㅎ 함수마다 위의 옵션을 붙여놓으면 그런 일은 벌어지지 않겠죠.  :)



댓글()

엑셀 오늘 날짜 기록

학습/엑셀 VBA|2011. 7. 13. 13:44
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

엑셀에서 오늘 날짜를 알고 싶을 때!

=Today() 라고 입력하면 된다.

VBA를 이용해서 오늘 날짜를 기록하고 싶을 때에는 아래와 같은 방법을 쓰면 된다.

Range("A1").Value = Date
Range("B1").Value = Time

Date와 Time은 현재 시간과 날짜를 반환해 주는 함수다~
Time은 시간 변경도 할 수 있는데, 변경을 하면 컴퓨터의 시간이 변경된다.

VBA로 수정할 때마다 각각의 버젼을 기록하게 하여 관리하는 방법으로 주로 사용하면 편리하다~
(뭐 저장할 때마다 기록한다던지...)

댓글()

엑셀 셀 서식이 많습니다.!!

학습/엑셀 VBA|2011. 6. 28. 12:54
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

해결 방법!
VBA를 하실 줄 아신다면 아래 코드를 이용하면 대부분 해결됩니다.
(모르시는 분은.. 흠...... 나중에 스샷이라도 찍어서 올려, 사용할 수 있게 해드릴께요;;)


    Dim n As Integer, yn As Byte
    On Error Resume Next
    Dim iCnt
    Dim i
    For n = ActiveWorkbook.Styles.Count To 1 Step -1
        If Not (ActiveWorkbook.Styles(n).Name = "Normal") Then
            ActiveWorkbook.Styles(n).Delete
        End If
    Next


하지만 위의 경우를 복사해서 사용하면 계속 먹통이 되는 경우도 있지요....
(그럴 땐 CTRL + BREAK 키를 이용하세요...)

이럴 땐 아래 코드를 이용해보세요..
 
    Dim n As Integer, yn As Byte
    On Error Resume Next
    Dim iCnt
    Dim i
    iCnt = ActiveWorkbook.Styles.Count
    For i = 0 To iCnt
        If Not (ActiveWorkbook.Styles(i).Name = "Normal") Then
            ActiveWorkbook.Styles(i).Delete
        End If
    Next i

뭐... 위와 거의 비슷하지만.. 조금 강제적인게 달라서..
그래도 시간이 오래갑니다.. 조금 기다리세요..




--왜 두번째 것을 해야하는가?!    라면...

처음 것은 스타일을 완전히 삭제할 때까지 진행하는 것 같은데.. 절대 삭제되지 않는 스타일이 있어요..(기본 스타일 및 버그 걸린 스타일..) 이 때 이 것을 삭제하지 못하면서 무한 루프에 빠지는듯 합니다.
(정확한 것은 아닙니다. 예측일뿐..)
그래서 못 지우는 것은 넘기고.. 그냥 삭제하자 하는 것으로 코드를 살짝 바꾼게 두 번째 것입니다.
하지만 위에 것도 완전히 삭제하는 것은 아니기 때문에 두번째 코드를 한 2~3번 반복하신 후에..
첫번째 코드를 실행 하는 것을 추천드립니다.

--추가 설명
 delete는 지정된 것을 삭제하는데... 그럼 뒤에 것이 알아서 앞으로 당겨져 연결되는 stack 구조인듯 합니다. 하지만 i는 계속 상승하니깐 앞으로 당겨진 스타일은 삭제할 수 없게 되는거죠..(대신 삭제 못하는 것을 뛰어넘고 다른 것을 삭제할 수 있게 됩니다.)




위에 것들은 진행상황을 볼 수 없어서.. UserForm으로 제작한 것이 있어요..
아래 두 개의 파일을 받아 주시구요..(frx는 없어도.. 되려나??)
(헛;; 예전에 있던 것은 잘못된 거군요 .. 새로 업데이트 합니다;;)




받은 후에, 보기>매크로 를 눌러주세요.
그냥 아무 매크로 이름을 넣고 편집을 눌러주시면 VBA 창이 나타납니다.

삽입>파일
을 해주신 다음, 받은 파일을 열어주세요.

그럼 왼쪽에 프로젝트에서 '폼'이라고 추가가 되어 있을 거에요.
열어보시면 UserForm2가 추가되어 있을 것입니다.
클릭해 보시면 이상한 모양의 팝업창이 떠 있을 거에요.
이후 상단의 녹색 ▷ 버튼을 눌러보세요.
ㅋㅋ 그럼 아까 보였던 팝업창이 나타날 것입니다.
그럼 '1단계 강제 삭제' 버튼을 2~3번 눌러주시고.
이후 '2단계 강제 삭제' 버튼을 눌러주시면 모든 스타일 완전히 삭제할꺼에요. ㅎㅎ
(이렇게도 안되는 경우가 있는데... 그 땐.. 어떻카죠 ;ㅁ; 잘 모르겠어요..)

우와 힘들군요.. 스샷이라도 첨부하면 좋겠지만.. 귀찮으니 패스...
(그럴 일은 없겠지만...)댓글이라도 달리면 나중에 추가 수정하죠..
뭐 알아들을 사람들은 아무렇게나 써도 알아들을테니.. 필요 없으실꺼구요 ㅎㅎ




댓글()