
slk拡張子のエクセルファイルを保存せずに.xlsに変換するには
slk拡張子のエクセルファイルが開かれています。
私の勉強不足のせいかslkでマクロでピボットテーブルを実行するとエラーになってしまい
それをエクセルファイル.xlsで一旦保存後、実行するとエラーにならずうまくいきます。
その為、slk拡張子のエクセルファイルを.xlsに変換したいと思います。
しかしやりたいのはデータ容量が大きいので保存せずにそのまま.slkファイルを.xlsファイルに変換したいのですがそんなマクロって出来ますでしょうか?
No.2ベストアンサー
- 回答日時:
>何故かはわかりませんが会社のデータ取得システムでslkでエクセルに呼び出すようになっています。
一度、理由は知っておいても損はないと思います。たぶん、十数年もそうしたシステムを使い続けているものだと思います。しかし、修正されるべきものだと思います。現在、海外で、ツールも販売されているようですが、値段はともかく(USD120.-ぐらい)、おそらくExcelの下位バージョンの互換性しかないはずで、再び、Excelの現在のバージョンで読まないとそのまま使えません。
sylkファイルフォーマット
http://support.microsoft.com/kb/410409/ja
この表は、Microsoft Multiplan 4.0 Standard Edition(正確には、4.11)ですが、この仕様は、他社製ですと、公開された標準フォーマットが、3.1 版だったはずで、特に問題はないとは思いますが、もう下位互換ということはありえませんが、上位互換だけです。
'肝心なマクロですが、モジュールのどこかに置いて実行してみてください。
'Excel 2007 でも使用可能なはずです。
Sub Sylk2Xls()
'SYLKファイルを標準フォーマットに替えるマクロ
'複数選択出来ます。
Dim FileNames As Variant
Dim fn As Variant
Dim newFn As String
Dim i As Variant, j As Long
Dim Ext As String
If Val(Application.Version) > 11 Then
Ext = "xlsx"
Else
Ext = "xls"
End If
FileNames = Application.GetOpenFilename("SLYKファイル(*.slk),*.slk", , "SYLKファイルインポート", , True) 'Multiselect:=True
If VarType(FileNames) = vbBoolean Then Exit Sub
For Each fn In FileNames
Application.ScreenUpdating = False
With Workbooks.Open(fn)
Do
If IsEmpty(i) Then
newFn = Mid$(fn, 1, InStrRev(fn, ".")) & Ext
Else
newFn = Mid$(fn, 1, InStrRev(fn, ".")) & "(" & CStr(i) & ")" & Ext
End If
If i > 10 Then MsgBox "Err:Skip Save File", 48: GoTo Jump '*
'*i >0 にすると、重複するファイルは保存しません。
i = i + 1
Loop Until Dir(newFn) = ""
.SaveAs newFn, xlWorkbookNormal
.Close False
j = j + 1
Application.ScreenUpdating = True
i = 1
End With
Jump:
Next fn
If j > 0 Then
MsgBox CStr(j) & "ファイルを処理しました", 64
Else
MsgBox "変換処理されませんでした。"
End If
End Sub
1週間の出張であたふたしてお礼が遅くなり大変申し訳御座いません。
以前のシステムはCSVだったのですが最近導入したシステムがslkなのです。
結局、同タイトルをカレントフォルダで上書き保存して行く事にしました。
誠に有難う御座いました。
No.1
- 回答日時:
slk(シルク または、sylk)というのは、1980年代の表計算テキストフォーマット・ファイルです。
ですから、もうお使いになるのは辞めたほうがよいです。>slk拡張子のエクセルファイルを保存せずに.xlsに変換するには
当時、私は、slkファイルの規則集は、求めたことがあるけれども、私は手にはいらなかった記憶があります。管理工学などは、このフォーマットを使っていたようですが、結局、MSは、この公開フォーマットの仕様を変えたせいか、1990年代に入ると、完全な互換性を失ってしまい、Excelの登場となってからは、ますます利用度が減ってしまいました。
>私の勉強不足のせいかslkでマクロでピボットテーブルを実行するとエラーになってしまい
>それをエクセルファイル.xlsで一旦保存後、実行するとエラーにならずうまくいきます。
それは、プロセスの問題です。一端、xls で保存して実行するしかありません。そもそも、slkファイル自体が存在すること自体が疑問符がつきますが、ピボット・テーブルというものは、オブジェクトですから、slkというテキストファイルでは、オブジェクトを確保できません。
>しかしやりたいのはデータ容量が大きいので保存せずにそのまま.slkファイルを.xlsファイルに変換したいのですがそんなマクロって出来ますでしょうか?
マクロと言われても、単に、slkファイルを、xlsに保管しなおすだけです。
ただ、インターネットサイトで、変換するサイトやツールはあるかもしれません。
詳細な回答有難う御座います。
何故かはわかりませんが会社のデータ取得システムでslkでエクセルに呼び出すようになっています。
その読込んだデータをピボットで資料作成したりします。
slkそのままではピボットマクロがエラーになってしまったので
slkファイルを.xlsファイルに保存せずに変換しピボットマクロに移れたらと思ったのですが
やはり無理みたいですのでタイトルを日付にでもして
一旦保存後ピボットマクロに移るようにしようかと思います。
ActiveWorkbook.SaveAS Filename:=Dateでいけるのかな?と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つのファイルの同...
-
Excelで「変更を保存しますか」...
-
OpenOfficeでLotus123は開かない?
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
エクセルのVBAについて とある...
-
大量のフォルダからひとつのフ...
-
チームズのチャット画面にファ...
-
コマンドプロンプトで作成日時...
-
win10の「フォト」で、「次へ」...
-
Thunderbirdで社内共有フォルダ...
-
「win11-23H2」を「win11-24H2...
-
.txtではなく.logの方が良いの...
-
ftpコマンドを実行すると「425 ...
-
「読み取りと実行」と「読み取...
-
バッチ処理でファイルの中身を...
-
xcopyで特定のファイルのみをコ...
-
バッチファイル 文字列にスペ...
-
一太郎がイントラで開けません...
-
バッチファイルの内容を表示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セッション関数を使わずにファ...
-
エクセルで二つのファイルの同...
-
Excelで「変更を保存しますか」...
-
OpenOfficeでLotus123は開かない?
-
slk拡張子のエクセルファイルを...
-
間違えて上書き保存した場合の...
-
MSDOSのCOPYAコマンドの使い方
-
CSVファイルををリネームしてxl...
-
2種類のエクセルファイルから...
-
《エクセル》マクロとセルのリ...
-
【初心者】2つだけでのファイル...
-
Excelの表示設定
-
サポートの終了したExcel.xlsフ...
-
職場で excel2010で保存形式を....
-
AccessでクエリしたデータをExc...
-
CSVデータの数値の表示
-
実行b可能な限界を超えています...
-
Excelファイルをcsvに変換する...
-
エクセルで注文書に他のファイ...
-
フォトショップでPDFファイ...
おすすめ情報