Excel 2013 Later用ではなくてノーベル賞にあやかるハヤカワ書房でも使えるようにしました
Sub Exportformula4Hayakawa()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet:
Dim Urng As Range
Dim r As Range
Dim strProjectName As String: strProjectName = wb.FullName
Dim strFilePath As String: strFilePath = wb.Path
Dim fileNo As Integer
Dim buf As String
Dim i As Long
Dim sr As ADODB.Stream: Set sr = New ADODB.Stream
Dim CNT
If Dir(strFilePath & "\" & "a_FormulaSjis.txt") <> "" Then Kill strFilePath & "\" & "a_FormulaSjis.txt"
If Dir(strFilePath & "\" & "a_FormulaUTF8.csv") <> "" Then Kill strFilePath & "\" & "a_FormulaUTF8.csv"
fileNo = FreeFile
Open strFilePath & "\" & "a_FormulaSjis.txt" For Append As #fileNo
sr.LineSeparator = adCRLF
sr.Mode = adModeReadWrite
sr.Type = adTypeText
sr.Charset = "UTF-8"
sr.Open
buf = ""
buf = "SheetName" & "," & "address" & "," & "formula,formulaR1C1,format" & "," & "formatLocal,HasArray" & "," & "Count" & "," & "mergecells,FontName,FontSize,Width,Height" & vbCrLf
For Each ws In wb.Worksheets
Set Urng = ws.UsedRange
For Each r In Urng
If Isformula2010(r) = True Then
buf = buf & ws.Name & "," & r.Address & ","
buf = buf & """" & "`" & r.FormulaR1C1 & "`" & """"
buf = buf & "," & """" & "`" & r.Formula & "`" & """" & "," & """" & r.NumberFormat & """" & "," & """" & r.NumberFormatLocal & """" & ", " & r.HasArray & "," & r.Count & "," & r.MergeCells & "," & r.Font.Name & "," & r.Font.Size & "," & r.Width & "," & r.Height & "," & vbCrLf
If CNT >= 10000 Then GoTo Terminate Else CNT = CNT + 1
End If
Next
Next
GoTo Terminate
Exit Sub
Terminate:
sr.WriteText buf, adWriteChar
sr.SaveToFile strFilePath & "\" & "a_FormulaUTF8.csv"
sr.Close
Print #fileNo, buf
Close #fileNo
End Sub
Function isFormula2010(Rng As Range) As Boolean
If Rng.Value = CStr(Rng.Cells.Formula) Then isFormula2010 = False Else isFormula2010 = True
End Function
機能
古いバージョンへ対応
これはIsFormulaを使いたいところですがこの記事を書いている時点でExcel2007を使っている株式会社 ハヤカワ書房さんのためにIsformula2010にしました。
と同時にUTF8形式のCSV shif-Jis 形式のテキストと2種類だしています。
数式以外の必要事項
シート名 アドレス `数式` `R1C1形式` 表示形式 表示形式ローカル 配列数式か カウント 結合か フォント名 フォントサイズ 幅 高さ
数式はShift+@で出る「`」を使用しています。
サーキットブレーカー
1万を超えた場合は強制終了します。
ノーベル物理学賞、文学賞、経済学賞まで早川書房の近刊とは…どうする?営業部!
— hironori okada (@solamimi777) 2017年10月9日
休日出勤でカズオ・イシグロの電話注文をエクセル2007に入力しまくったのだが終わらず、明日も残っているのになぁ…。
でもご安心を!帰り際に2台のFAXには紙をパンパンに詰めて来ましたので!
Twitterに公式アカウント認定を却下された某出版社内部発と思われる、FAX受注が主力だとか、Excel2007で発注数管理しているとかいう情報は、喜びの声のふりをした内部リークというか、経営者批判というか、業務体制への悲鳴なのではないかというところをこっそり疑っている。
— 未識魚 / 中川譲・技術書典3 か12 (@mishiki) 2017年10月9日
W受賞おめでとうございます。
— 宅島 克実 (@katsumitk) 2017年10月9日
ところでexcel2007は本日でサポート終了のようです。
こ注意下さい。https://t.co/yAKVamAs96
「2017年現在の今になっても「未だFAX2台、電話注文な上、それをExcel2007(明日全サポートが終了する)で入力」な営業体制の出版社が日本のSF小説というジャンルを長年にわたり牽引し続けている」というこの現実をネタに、誰か小説でも書いて欲しいなとぼんやり思うなどした。
— 相楽 (@sagara1) 2017年10月10日