2011年12月28日 星期三

i2資源日曆的設定

i2是一套APS先進規劃排程軟體,他可以做有限產能規劃,無奈資源日曆的設定在一般的教學說明檔都不太清楚,好不容易搞清楚後趕緊錄影起來,可以提供以後做這類研究的同學參考。也可以預防我自己忘記。


 

 












2011年12月2日 星期五

excel限制儲存格資料格式



常常會遇到儲存格想要限制使用者輸入資料的種類,剛好最近教學需要,也查到相關資料

1. 首先先選取要限制的範圍儲存格 

2. 在資料標籤/資料驗證/資料驗證

3. 設定標籤/儲存格內允許 自訂,公式 = (int(儲存格)=儲存格)*(儲存格>0)*(儲存格<4)

    我當初的目的是要1, 2, 3三種正整數,因此第一個int可以限制成正整數,第二個括弧內限制大於0,第三個括弧限制小於4。



2011年7月2日 星期六

輸入或輸出計算結果

初學Excel VBA的人可能會想,以前我用VB可以用msgbox()或用label.text來輸出計算結果,換成Excel VBA後,不是有很多excel儲存格可以用嗎,沒錯

利用range物件的value屬性即可輸入或輸出值

 

Sub test1()

    Range("c2").Value = Range("a2").Value + Range("b2").Value
   
End Sub

 

 

事實上excel也可放置active控制項來做輸入輸出

 

Sub test1()

    Range("c2").Value = Range("a2").Value + Range("b2").Value
  
   '因為此VBA置於模組內,而Label與textbox放置在工作表1內,因此無法直接取用
    'Label1.Caption = Range("c2").Value
    'TextBox1.Text = Range("c2").Value
   
    工作表1.TextBox1.Text = Range("c2").Value
    工作表1.Label1.Caption = Range("c2").Value
   
   
End Sub

2011年7月1日 星期五

選取欄或列

'選取欄

Sub aaa()
   'i只能輸入英文字母

   i = InputBox("請輸入您選的英文字母欄")
   '將Z設定為整欄的範圍

   Z = i & ":" & i

   '將整欄選取
   Columns(Z).Select

   '使用msgbox通知使用者選取的欄

   MsgBox ("您選的是" & i & "欄")
End Sub

 

'選取列

Sub bbb()
   'i只能輸入數字

   i = InputBox("請輸入您選的數字列")
   '將Z設定為整列的範圍

   Z = i & ":" & i

   '將整列選取
   Rows(Z).Select

   '使用msgbox通知使用者選取的列

   MsgBox ("您選的是" & i & "列")
End Sub

excel VBA筆記

 

 

檢查某列是否有空白列,刪除空白列

 

Sub aaa()
    '到A欄最後一列
    Range("A65530").Select
    '跳到該欄最後一列有資料的地方
    Selection.End(xlUp).Select
    'x為最後一列有資料的列數
    x = ActiveCell.Row
    '從A1列開始
    Range("A1").Select
    '利用迴圈來判斷是否要刪除該列
    For y = 1 To x
        '如果該儲存格是沒資料,empty
        If ActiveCell.Value = Empty Then
             'x1為沒有資料那列
             x1 = ActiveCell.Row
             '將x1:x1設定為z列
             z = x1 & ":" & x1
             '選取z列
             Rows(z).Select
             '刪除z列後,剩餘資料往上移動一列
             Selection.Delete Shift:=xlUp
        Else
           
            ActiveCell.Offset(1, 0).Select
        End If

    Next
    '回到A1儲存格
    Range("A1").Select
End Sub


2011年6月16日 星期四

暑假不得閒之MCAS(MOS)準備

原本規劃要上Excel VBA的計算機程式在學校要求證照輔導的考慮下,打算撥出幾周的時間來上證照考試,當然老師自己要先取得證照(雖然已經有電軟應用乙級)。在顏老師、忠義老師還有幾位熱心同學的協助下,趕緊上網找資料:

 

Master2003大師級認證
通過以下四科軟體考試,即取得MOS大師級認證【可分梯次考】
.Microsoft Word 2003 Expert
.Microsoft Excel 2003 Expert
.Microsoft PowerPoint 2003 Core
.Microsoft Access 2003 Core(二選一)
.Microsoft Outlook 2003 Core(二選一)

另外,新的Office 2007, 2010認證除了也稱為MOS外,又名為Microsoft Certified Application Specialist(MCAS)

Microsoft Certified Applictation Specialist考試科目如下:

Microsoft® Office Word 2007
Microsoft® Office Excel® 2007
Microsoft® Office PowerPoint® 2007
Microsoft® Office Access™ 2007
Microsoft® Office Outlook® 2007
Windows Vista™ for the Information Worker
共6科(不分專業級或標準級)。


網路上有好心人寫了練習題可以下載,網址在

嵐色共享體-Office研究室



在畫面右上角選擇科目後下載,安裝後須帳號密碼,可到以下網址申請:


 

 

2011年5月21日 星期六

dw8的幾個問題

已經有好幾個學期沒有教網頁設計,連之前微軟的frontpage也改朝換代到Microsoft Expression(Microsoft Office SharePoint Designer 2007),無奈這個新軟體中文書都還沒有幾本,因此改成使用歷史悠久的MacroMedia DreamWeaver 8來上課。發現有一些問題:

1. 頁框組有些問題,明明已經設定好每個頁框對應的網頁,存檔後關閉竟然會說找不到另一個不知名的網頁。

2. 插入Flash按鈕不會出現,後來上網找到解法,原來網站的命名不能使用中文,可接受數字或英文,設定好網站名稱後即可插入Flash 按鈕。

3. 插入浮動式選單出現問題,文字呈直線排列,如下圖

選單中的文字怎麼變成垂直排列了。


經過上網搜尋答案,終於發現需手動修改DW8自動產生的mm_menu.js檔,在136列的地方, 將原本的

var itemProps = '';
改成
var itemProps = 'white-space:nowrap;';
就可以了,修改成功的成果如下。




 


4. 樹狀目錄



5. 加入wmv播放檔





ClassID clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95





2011年4月18日 星期一

被捲尺搞錯好幾次

最近在改學生專題,發現有個地方一直好像有錯,上網花了許多時間才搞清楚。

有些人可能會問怎麼會搞錯呢? 請看下圖

 


明明文公尺上面寫的單位是台尺,可是實際上應該是台寸,10台寸才是1台尺。

 

以下資料參考自: http://tw.myblog.yahoo.com/joe8885/article?mid=81&next=77&l=f&fid=6

1.台尺、台寸:
一般估價單上只寫「尺」,
通常就表示台尺,
1台尺=10台寸,
1台寸=3.03公分,也就是說,
1台尺=30.3公分
(更正確的說法,是30.3030303030…)

2.材:
一材的「材」字,
是「材積」的意思,
顧名思義就是「木材的面積」或「木材的體積」,原本是用來計算木材的單位,現在已經被廣泛地使用做為計算許多面積的單位。不過,坊間許多人並不知道這個字怎麼寫,於是就常在估價單上看到單位寫成了「才」,反正積非成是…現在其實寫「才」的人比寫「材」的人要多得多。
至於材積的算法,
很簡單,在面積就是「平方台尺」的意思,
在體積則是「每平方台尺*一寸厚」的意思,
也就是說,
1面積材=30.3*30.3=918.09cm2,
1體積材=30.3*30.3*3.03=2781.8127cm3。
 
順便也提一下…通常估價單上看到的「材」都指面積,而體積材大半是建材行在使用。

 

 

 

3.坪
坪也是日製單位,
根據尺貫法的說明,
1坪=1平方「間」,
1「間」=6日尺。
也就是說,
1坪=36日尺平方。
而由於台尺沿用日製,
所以1坪=36材=36*918.09cm2=33051.24cm2=3.305124M2。一般通常簡略地說1坪約等於3.3平方公尺。


































面積

()


平方公分
(cm2)

平方公尺
(m2)

()

1.00

1/36

918.09

0.09


36.00

1.00

33051.24

3.31

平方公分
(cm2)

0.00

0.00

1.00

0.00

平方公尺
(m2)

10.89

0.30

10000.00

1.00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 














































































()



()



(=inch)



(=feet)



(yard)



(cm)



(m)



()


1.00


0.10


1.19


0.10


0.03


3.03


0.03



()


10.00


1.00


11.93


0.99


0.33


30.30


0.30



(=inch)


0.84


0.08


1.00


1/3


1/36


2.54


0.03



(=feet)


10.06


1.01


12.00


1.00


1/3


30.48


0.30



(yard)


30.18


3.02


36.00


3.00


1.00


91.44


0.91



(cm)


0.33


0.03


0.39


0.03


0.01


1.00


0.01



(m)


33.00


3.30


39.37


3.28


1.09


100.00


1.00


 

 

 

 

精密量測概念 (參考自http://www.whcmm.com.tw/index.php?option=com_content&view=article&id=58%3Ameasuring-introduction&catid=31%3Ageneral&Itemid=46&lang=zh)



一、 單位介紹:


常用的單位有公制 ( mm ) 和英制 ( inch ) 二種


1. 公制:1 mm ( Millimeter 公厘) = 100 ( 條 ) = 1000 µm ( Micrometer 微米 )  =1000000 nm ( Nanometer 奈米 ) 。


 1 mm ( Millimeter 公厘) = 102 ( 條 ) = 103 µm ( Micrometer 微米 )  =106 nm ( Nanometer 奈米 ) 。


  mm 又稱為毫米;條是日本用語,在台灣工業界幾乎天天用,大陸稱為絲;µm 又稱為 Micron 。


2. 英制:1 inch ( 英吋) = 1000 Mil ( 密耳)  。


3. 單位換算:1 inch = 25.4 mm ,1 Mil = 2.54條 = 25.4 µm 。


二、 量測觀念:


1. 精密量測是建立在空間坐標系的觀念上,基本元素為點、線、圓三種。


2. 在坐標系中,元素之間可有多種對應的組合:


點到點距離、點到線(垂直)距離、點到圓距離、圓到線(垂直)距離、圓到圓距離、圓到線(垂直)距離、


線和圓的交圓及切點、兩線交點、兩線交角、兩圓交點…等。


 


三、量測時常用的名詞:


1. 公差:指在一定的數據內可以容許的誤差值,例某一圓直徑標示為 10 ± 0.05 mm 代表只要這個圓的


 直徑在9.95 ~ 10.05 mm 之間都是合格的。


2. 精度:符號為E,是指某一距離與標準距離的誤差,誤差越少精度越好。


U1:指的是在沿著X、Y、Z 軸向的線性精度。


U2:指的是在平面XY、ZX、ZY 面任意位置的線性精度。


U3(E,MPEE):指的是在XYZ 三度空間裏任意位置的線性精度。請參見:三次元座標量測儀的量測誤差


3. 解析度:指某一量測設備的最小單位值,一般精密量測儀都是以µm ( 10-3 mm ) 為單位


4. 重復性:指重復往返某固定位置或重復量測一標準件的誤差值,誤差越少重復性越好。


 


推薦書籍:精密量具及機件檢驗 (新文京, 作者-姜俊賢)


2011年4月8日 星期五

Excel隔列換色

前一陣子在講考題時因為答案在很右邊的地方,很久沒用excel突然忘記如何使用可以達到所謂隔列換色,還很費力的使用格式/格式化條件設定

1. 先選擇要格式化的範圍

2. 格式/設定格式化條件

3. 選 公式為 =MOD(ROW(),2)=0 圖樣設 淡黃色


 

後來才發現原來用 自動格式設定 即可達到 隔列換色 的功能,雖然顏色不盡理想,但可自動判斷範圍。

 


 


 

 

後來回家後因家裡是用2010,果然2010比較聰明的將此功能放在常用 分類

 

 

2011年2月26日 星期六

產生條碼

感謝 Brad Barnhill 及他post的文章 (Thanks to Barnhill, Brad)

Barnhill 撰寫了產生條碼的DLL函式庫,讓我們可以快速地產生需要的條碼,這個已經困擾我十幾年的需求。

以下產生預設是128碼,可同時包含英文與數字,但為了簡化程式,只能輸入最多24個英文字或46個數字。

 

1. 首先加入參考 BarcodeLib.dll ,如下圖

 


 

2. 照例布置所需要的物件如下圖


最下方是一個picturebox1

 

3. 程式如下

一開始先imports函示庫

 

Imports BarcodeLib

 

 

  Dim b As BarcodeLib.Barcode = New BarcodeLib.Barcode()

//以下這幾行程式便可產生條碼圖形

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim type As BarcodeLib.TYPE = BarcodeLib.TYPE.CODE128
        b.IncludeLabel = True
        Try
            PictureBox1.Image = b.Encode(type, TextBox1.Text.Trim)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try


    End Sub

 

 //條碼存檔

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim sfd As New SaveFileDialog
        sfd.Filter = "BMP (*.bmp)|*.bmp|GIF (*.gif)|*.gif|JPG (*.jpg)|*.jpg|PNG (*.png)|*.png|TIFF (*.tif)|*.tif"
        sfd.FilterIndex = 2
        sfd.AddExtension = True
        If (sfd.ShowDialog = DialogResult.OK) Then
            Dim savetype As BarcodeLib.SaveTypes = SaveTypes.UNSPECIFIED
            Select Case (sfd.FilterIndex)
                Case 1
                    savetype = BarcodeLib.SaveTypes.BMP

                Case 2
                    savetype = BarcodeLib.SaveTypes.GIF
                Case 3
                    savetype = BarcodeLib.SaveTypes.JPG
                Case 4
                    savetype = BarcodeLib.SaveTypes.PNG
                Case 5
                    savetype = BarcodeLib.SaveTypes.TIFF
            End Select
            b.SaveImage(sfd.FileName, savetype)
        End If

 

    End Sub

 

 

通常產生的條碼會需要列印出來,此時加入PrintDocument及PrintPreviewDialog控制項,windows form加入一個預覽列印的按鈕Button3,接著再加入以下程式碼

 

  'printdocument包含所有列印所需要的資訊,
    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        e.Graphics.DrawImage(Me.PictureBox1.Image, 0, 0)
        e.Graphics.PageUnit = GraphicsUnit.Inch

    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        PrintPreviewDialog1.Document = PrintDocument1 'PrintPreviewDialog associate with PrintDocument.
        PrintPreviewDialog1.ShowDialog() 'open the print preview

    End Sub

完成後執行預覽列印的畫面如下:

 


2011年2月25日 星期五

vb.net列印

最近因為計畫的關係,花了些時間整理平常上課比較不會特別教的內容,

例如條碼的產生, 列印的問題, 我將.VB.NET列印的範例整理如下:

首先先產生相關物件如下圖


 

 'printdocument包含所有列印所需要的資訊,
    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

        e.Graphics.DrawString(Me.TextBox1.Text, TextBox1.Font, Brushes.Black, 100, 100)
        e.Graphics.PageUnit = GraphicsUnit.Inch


    End Sub


    '列印按鈕
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PrintDialog1.Document = PrintDocument1 'PrintDialog associate with PrintDocument.

        If PrintDialog1.ShowDialog() = DialogResult.OK Then

            PrintDocument1.Print()

        End If

    End Sub

    '預覽列印按鈕
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        PrintPreviewDialog1.Document = PrintDocument1 'PrintPreviewDialog associate with PrintDocument.
        PrintPreviewDialog1.ShowDialog() 'open the print preview

    End Sub