2009年9月3日木曜日

*RNF7055 30 1 指定された演算命令で演算項目1が正しくない。

現象
as400 rpgleをコンパイル時、chainでエラー
原因
F仕様書の ratのところにKが入っていない
キー検索をファイル仕様書で指定していないので、chainを使おうとしてこけています

2009年7月18日土曜日

プログラムが大きすぎてメモリに入りません

os winxp home sp2
ram 504mb
症状
canon pixusのドライバをダウンロードして
setup.exeをwクリックしてインストールが始まらず
すぐ終わってしまう
うまくいった処置
違う場所に解凍したらsetup.extのアイコンに絵のマークが表示されてwクリックしたらうまくインストールできた

setup.exeをダブルクリックしてもすぐ終わってしまうのでdosプロンプトから実行

失敗するsetup.exe


成功したsetup.exe


はじめはieから c:\arcというフォルダにダウンロードして失敗していて
firefoxに変えてダウンロード マイドキュメントのダウンロードフォルダにダウンロードして成功しました
その後c:\arcの段ロードファイルをダウンロードフォルダに移動して実行すると
絵のついてsetup.exeができるのを確認しました

0x00000077のストップエラーが出るpcだからhddがもうだめかもしれない
system32のdllでexeの起動時やフォルダを表示するたびにkingsoftでウィルス報告が出てて
HDDディスクも常時点滅しっぱなしでブルースクリーンが出るようになって
修理依頼が来たpcをクリーンインストールしたもの

実はこのpc以前に会計のソフトが入らなくて、レジストリをなおしたりsystem32のdllを復元して依頼主に返したもの。その時点でなんとしてもウィルスが除去できずに無料のアンチウィルスを入れて返したんですが、
そのときクリーンインストールの処置をしておけばまだHDDの破損までは至らなかったとおもわれますが、当初の目的、会計ソフトのインストールができたら返してしまうよな。。。
破損といっても今sのpcでこれを書いていてぜんぜんとまる気配がない訳で
バックアップを取りながらなら、だましだまし使えなくもないかなあとも思えるのですが、
依頼主のpcの知識からいって、どうやってバックアップするのとか、自分で復元なんて望めないので
新たにpcを買ってもらったほうが、依頼主もすっきりすると思われます

2009年7月6日月曜日

実行時エラー1004、アプリケーション定義またはオブジェクト定義のエラーです シート名が合っているのにエラーになる

excel2007 vba
sub test()
worksheets("a").activate '<-----ここでこける
end sub

シート名をダブルクリック、コピーペしてもこける
処置
こけるシートをコピー
a(2)というシートが作られた
worksheets("a(2)").activateでこけないことを確認
シートaを削除
a(2)をaにリネーム
worksheets("a").activateでこけないことを確認

何だったんだろう...

2009年6月19日金曜日

再起動を繰り返すpcを復旧した

症状 起動時ブルー画面が一瞬でて再起動を繰り返す セーフモードでも立ち上がらず
環境 winxp sp2 hdd30G 使用14G ram500MB toshiba satellote1870

処置 メモリテスト 1枚NG 1枚抜いて500MB しかし症状治らず
hddを抜いてusbケースからデータを吸い上げようとするが 認識せず インページ操作のエラー
カシュンカシュンカシュンと小さい音の繰り返し chkdsしようにもhddが認識しないからどうしようもない
瞬間的にEドライブで現れることがあるが操作しようとすると砂時計

usbに、osの入ったtestdiskの入ったhddをさして、winxp cdから回復コンソール 、cドライブ=内蔵は調子のわるいhdd 回復コンソールがDで立ち上がる cは認識しなかった?
c:で移動できたがdir で読み込みエラー
(winxpのcdも2度ほど読まなかったので、クリーニングcdを2度ほど使った、古いpcには何かとお世話になる、というか十分元をとった=クリーニングcd)

chkdsk /rでしばらく考えこんでいたが動き始めて50%でとまる、しばらく放置しておくと64%まで進んでいた。hddの繰り返し音はなくなっていてchkdsk完了
コマンドfixboot cに書き込みますか yで答えると
ブートセクタが壊れている
正常に書き込んだとメッセージ
で正常に起動しました

処置の結論としては根性でchkdsk
2月ごろからdiskエラーが出て最近は冗長エラーとかすぐHDDを交換せよってシステムログがあがりまくってる、、それ放置してバックアップも取らずに、立ち上がらなくなったらこっちにいってくるんだから、なんだかなぁ
まぁこのpc提供したの自分で壊れたHDDフォーマットして提供したんだから、元は言えば自分が悪いんだけど、、、今回はos入りのhddをusbからさしていたのがよかったかなと思ってます、認識しないcドライブで回復コンソールが使えなかったじゃないかとおもったり
もう何回もhddエラーに遭遇してるけどHDDってほんと消耗品ですね
とりあえずバックアップをとって
オンラインウィルススキャン中 65%でとまって嫌なカシュカシュ音が鳴ってる。。。
システムログにはしっかりdiskエラーが記録されてる
カシュカシュいいながらディスクのジーというアクセス音も聞こえる

*壊れかけのHDDにchkdskをかけるのは禁忌なことは分かってます。余計壊れて修復がされに難しくなる場合があります。重要データがあり、業者に高い金を払ってでも復元しなきゃいけない場合は、chkdskを かけてはいけません。。壊れて、業者に出す予定もなく、どうしようもないいHDDに、chkdskをかけたら、たまたまうまくいったという話です。

2009年5月20日水曜日

excel2000 名前を付けて保存 ダイアログ サイズ変更

現象
excel2000で名前を付けて保存ダイアログを呼び出すと、画面いっぱいに広がって表示される
サイズ変更したいが、変更するハンドルがない

googleで ダイアログ、サイズ変更でしても検索にヒットしなかった
「画面いっぱい」で検索してヒットした

解決策
名前を付けて保存のウィンドウが全画面サイズになる
>タイトルバーのところをダブルクリック

2009年4月11日土曜日

vbscript 特定行を変更する

説明
asの転送記述 pcへの出力ファイルを特定文字+日付+時刻.xlsで書き出すよう 定義ファイルをするものです
月や日はそのままだと4/9なら49のようになってしまうので 前文字が入る必要があります
VBScript でのformatを参考にしました
日付の取得については[VBScript Tips]を参考にしました
rightのところで型が一致しないエラーが発生したので行を分けています

'-----------------------------------------------以下スクリプト
dim oFSO
dim x
dim strLine
dim strFilename
dim datestring
dim ymdm
dim strtime

' instantiate the Scripting Object
set FSO = CreateObject("Scripting.FileSystemObject")
strFile1="\\10.12.8.210\全社\tenso\ano\tmp08021r.TTO"
strfile2="\\10.12.8.210\全社\tenso\ano\tmp08021r@.TTO"
'openスイッチ 1 input ,2 output ,3 append
' true/false 存在しない場合作成
Set f1 =FSO.OpenTextFile(strFile1, 1, false)
Set f2 = FSO.OpenTextFile(strFile2, 2, true)
mm=month(date())
mm=Right("00" & mm ,2)
dm= right("00"& day(date()),2)
Ymdm=year(date()) & mm & dm
strtime=hour(time()) & minute(time()) & second(time())
datestring=ymdm & strtime
' Open the file
a=1
do until f1.AtEndOfLine
buf=f1.Readline
if a=9 then buf="\\Server01\第2製造部\オンライン変更" & datestring & ".xls"
f2.writeline buf
a=a+1
loop
f1.Close
f2.close
'----------------------------------------スクリプト終了

別のファイルを作って動かしてます
'スクリプト開始--------------------------------------------------------------
'元の設定ファイルを削除して'書き出したファイルを元のファイル名に移動する
dim oFSO
dim x
dim strLine
dim strFilename

' instantiate the Scripting Object
set FSO = CreateObject("Scripting.FileSystemObject")
strFile1="\\10.12.8.210\全社\tenso\ano\tmp08021r.TTO"
strfile2="\\10.12.8.210\全社\tenso\ano\tmp08021r@.TTO"

ingRet=FSO.deletefile("\\10.12.8.210\全社\tenso\ano\tmp08021r.TTO")
ingRet=FSO.movefile("\\10.12.8.210\全社\tenso\ano\tmp08021r@.TTO","\\10.12.8.210\全社\tenso\ano\tmp08021r.TTO" )


set FSO=nothing
'スクリプト終了

2009年4月7日火曜日

印刷装置prt01が見つからない

キューリー定義で
印刷装置*print


スプール出力の定義

選択項目を入力して,実行キーを押してください。

出力のスプール . . . N ブランク, Y=YES, N=NO

用紙タイプ . . . . . ブランク,名前, *STD

コピー部数 . . . . . 1 ブランク, 1-255

保留 . . . . . . . . ブランク, Y=YES, N=NO


のときエラーになった。問題は出力のスプール N
Yにしたら出るようになった

2009年3月13日金曜日

google ブログに記事のカテゴリーを表示する方法

まず記事にラベルを付ける。  ラベルは記事の下に入れるところがある
カスタマイズ ガジェット追加 ラベル
で記事のカテゴリーが表示されるようになる

2009年2月20日金曜日

ネットワークからexelを開くとき異常に遅い

excel2007でネットワーク上のexcel2003 1M程度を開くとき異常に時間がかかる

kingsoft リアルタイムガードを停止したらいつもと同じくらいのスピードで開いた

excelからcsvを作る k3フォーマット

excelでcsvに保存すると ダブルコーテーションなしのテキストに書き出され、asの転送 basic順次で受け取れない。excel2007になってworksheet4.0形式で保存できなくなり、可変長で保存してasに転送で聞くなった。
以前にも同様のマクロを作ったがどうしても解析が面倒で使いにくい
余計なマクロの解析なしに、必要なパラメータを渡して asで受け取り可能なcsvを作成することを目的とする

意味
parm1 input excel book full path
parm2 input excel worksheet name
parm3 output csv k3format
parm4 文字属性の指定文字列 Attribute string of characters? google translate:-)

'使用例 とりあえず↓のsub3つをexcel vbaにコピぺして動きを追うと分かりやすいと思います
Sub make0()
Dim strsws As String
'as 転送記述fdfからフィールドの属性情報を書きだす
callfdf "(パス)\TMP421184.FDF", strsws
'家計簿.xlsのdataシートをkaikei.csvに書き出す
callfdf "(パス)\TMP421184.FDF", strsws

'fdfファイルが無い場合は自分で文字列を確認した渡す
'フィールドの属性は1=文字,2=数字で 12121111の8つのフィールド
MAKE_CSV_FILE "(パス)\test.xls", "as書き出し用", "(パス)\TMP421184.TXT" _
, strsws
End Sub
'--------------------------------------------------------------
Sub MAKE_CSV_FILE(inxls As String, sheetname As String, _
outfilecsv As String, strsws As String)
Dim frm(255)
Dim objHANI As Range
Dim startrow As Integer 'データ読込行 1なら2行目から
startrow = 1
bookname = ActiveWorkbook.Name
Workbooks(bookname).Activate '<---マクロ起動のエクセルが同じならコメントにする
Worksheets(sheetname).Activate
len01 = Len(strsws)
name1 = ActiveWorkbook.Name
'転送元範囲セット
endr = Cells(1, 1).End(xlDown).Row
Set objHANI = Range(Cells(2, 1), Cells(endr, len01)) 'excelの2行目からデータ
'Set objHANI = Range(rng)

'定義情報を配列に展開する
GoSub fdf
'ファイルをオープンする
Dim FNO As Integer 'ファイル番号
FNO = FreeFile '空いてるファイル番号を取出す
Open outfilecsv For Output As #FNO 'テキストファイルを新規作成

'行、列でループを作る
Dim y As Integer
Dim x As Integer
For y = startrow To objHANI.Rows.Count '行のループ
'1列目
If frm(1) = "1" Then
Print #FNO, Chr(&H22) & objHANI.Cells(y, 1).Value & Chr(&H22); '先頭項目の出力
Else
Print #FNO, objHANI.Cells(y, 1).Value; '先頭項目の出力
End If
'2列目以降
For x = 2 To objHANI.Columns.Count '列のループ
Print #FNO, ",";
If frm(x) = "1" Then '文字
Print #FNO, Chr(&H22) & objHANI.Cells(y, x).Value & Chr(&H22); '先頭項目の出力
Else '数字
Item1 = objHANI.Cells(y, x).Value
If Item1 = "" Then Item1 = "0"
Print #FNO, Item1; '先頭項目の出力
End If
Next x
Print #FNO, "" '改行のみ出力
Next y

'ファイルをクローズする
Close #FNO
Exit Sub

fdf:
For i = 1 To Len(strsws)
'ReDim frm(1)
frm(i) = Mid(strsws, i, 1)
Next
Return
End Sub

'--------------------------------------------------------------
Sub callfdf(in_file As String, strsws As String)
'fdffile asの転送記述ファイル,
Dim frm(255)

'in_file = "パス\hr01.fdf"

'** ファイルオープン
FNO = FreeFile
Open in_file For Input As FNO Len = 32000

x = 1
Do Until EOF(FNO)
Line Input #FNO, rec
'4行目から処理
If x >= 4 Then
len1 = Len(rec)
Count1 = 0
For i = 1 To Len(rec)
If Mid(rec, len1 - i, 1) = " " Then Count1 = Count1 + 1
'右から読み込んで2番目のスペースの左から1ケタ分読み込む
'PCFL MF 1 1 mf=フィールド名,文字数字種別,桁数 文字数字種別1=文字、2=数字
If Count1 = 2 Then
frm(x - 3) = Mid(rec, len1 - i + 1, 1)
Exit For
End If
Next
End If
x = x + 1
Loop

Dim y As Integer
'読みだした配列を文字列に書き出す
For y = 1 To 255
strsws = strsws & frm(y)
len2 = Len(strsws)
Next
Close FNO
End Sub