|
〜 Excel連動便利プログラム 〜 |
|
|
九州大学大学院 工学府 劉 永富 氏 |
|
今回、Mathematica で活用できるアドインプログラムを作成し、ご提案いただいたのは、
九州大学大学院 工学府 の 劉 永富 氏 です。
どういったプログラムなのか、ご紹介致します。
|
|
☆ プログラムの概要について ☆ |
|
Mathematicaでは、Excelからデータをインポートする際に、ファイルパスの指定が必要となります。
そのファイルパスの取得を、Excelのファイル上から簡単に行うことができる、というものです。
|
|
☆ このプログラムを作成した経緯は? ☆ |
|
ファイルのインポートを行う場合、複数のファイルからインポートを行うことは勿論、
同一ファイル内の異なる範囲を指定してインポートすることなどが往々にしてあります。
そういった場合に、ケアレスミスを減らす意味でも、プログラムを通したパスの取得ができればと、
今回のプログラムの作成に取り掛かりました。
|
|
☆ 利用方法は? ☆ |
|
プログラムを有効にした状態で、Excelシート上でインポートしたい部分を指定し、ショートカットキーを押すと、
指定した範囲をインポートするためのコマンドをクリップボードにコピーする事ができます。
下図の用に範囲を指定すると、クリップボードにはインポート用のコマンドが貼付されます。

Sheet1=Import["D:\EVMSA\Book1.xls", "Data"][[1, Range[9,18], Range[2,4]]]
これがクリップボードに用意されるので、後はそれをMathematicaノートブック上に貼り付ければ良いのです。
Mathematcaでデータを活用される方には、ケアレスミスを減らす意味でも、有用なプログラムになります。
<ソースコードはこちら> ※ 作成者様より公開許可は頂いております ※
Sub mathematica()
On Error Resume Next
Dim rg As Range, ms As String
Set rg = Selection
ms = ActiveSheet.Name & "=Import[""" & ActiveWorkbook.FullName & """" & ",""Data""]
[[" & ActiveSheet.Index & ", Range[" & rg.Row & "," & rg.Rows.Count + rg.Row - 1 & "],
Range[" & rg.Column & "," & rg.Columns.Count + rg.Column - 1 & "]]]"
Set mydata = New DataObject
mydata.SetText ms
mydata.PutInClipboard
MsgBox "コードは既にクリップボードにコピーした、Ctrl+V を押してください"
Set mydata = Nothing
End Sub
|
|
|
作成者
九州大学大学院 工学府 劉 永富 氏
|
|
|
☆ 劉 先生、ご紹介ありがとうございました ☆
|
|