パソコン裏技小技テクニック集

ExcelVBAプログラミングの基礎から応用までプログラミングの解説です。参考図書などは、広告収入で補っています。Excelをもっと使いこなしてもらえるようになったら嬉しいと思っています。

メニューへ戻る     



番外編
  b4.セルのリンクコードをPHPプログラムへ変換


インフォトップのアフェリエイトのリンク先一覧をCSVで保存することができる。


これをブログの記事の中にランダムにリンク先を表示させるために、PHPのSWITH文の形式に新規に保存するプログラムを作成した手順が以下のとおりである。

保存形式は以下のとおりである。


それをHPのリンク形式にちょっと加工する






○マクロプログラム
Sub 自動()
Dim fl As String
Dim i As Integer


i = 1
While Cells(i, 1) <> ""
i = i + 1
Wend

fl = "M:\プライベート\HP作成\教えてGoo\swich.txt"

Open fl For Output As #1

Print #1, "<?php"

Print #1, "$r = rand(0," & i - 2 & ");"
Print #1, "switch ($r){"

i = 1
While Cells(i, 1) <> ""
Print #1, "case " & i - 1 & ":"
Print #1, "print '=>" & Cells(i, 1) & Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5) & "<br /><br /><br />" & "';"
Print #1, "break;"
i = i + 1
Wend
Print #1, "default:"
Print #1, "break;"
Print #1, "}"
Print #1, "?>"
Close #1

End Sub


i = 1
While Cells(i, 1) <> ""
i = i + 1
Wend

登録するデータ数のカウント。ただし、実際より2だけ多いので、 i-2 をその後の登録のところで行っている。

Print #1, "$r = rand(0," & i - 2 & ");"


新規書込でオープン  output
書き込み        print

 最初 write で書き込みを実行。すると、   "<?php"   な感じでダブルクォーテーションマークが付いて保存された。
 そういえば、20年前、N88basicをしていたときに、print文で書き込むのがあったな、と思って、print文で書き込むとダブルクォーテーションマークなしで書き込み。

大成功!!

BCells(i,1)は、A1のセルのこと。
それをセルのデータがなくなるまで繰り返す処理

○実行結果


PHPのprint文をシングルクォテーションでくくると、その中にダブルクォーテーションマークがあっても、¥をダブルクォーテーションマークの前につけなくてもOK。






メニューへ戻る
inserted by FC2 system