スポンサーサイト

一定期間更新がないため広告を表示しています

Notice: Undefined index: name in PHP input ?

phpでスケジュールを作っていたところ表題のように

Notice: Undefined index: name inってインプット

のテキストタイプの入力部分に表示されました。

こてってなに?

エラーではなくて警告を出力している。

内容は「Notice: Undefined index:mode 」で、


「modeという変数が定義されていない」ので警告!

変数を使用する前に初期化をすると解決する。

例えば空文字をセットしておくとエラーが解決!


//変数の初期化を行う
if(!isset($_POST["year"])){$_POST["year"]="";}
if(!isset($_POST["month"])){$_POST["month"]="";}
if(!isset($_POST["day"])){$_POST["day"]="";}
if(!isset($_POST["title"])){$_POST["title"]="";}
if(!isset($_POST["body"])){$_POST["body"]="";}
?>



Excel VBA シート名「26.1」をシリアル値に変換する

原紙を作り、1月から12月までシートを最後尾に追加した後に、

シートのタイトルもシート名と同じにしてスケジュールを作成

Dim myWS As Object
Dim InputName As String
Dim i As Integer
Dim buf As String

InputData:  ’<エラーでここに戻る>
’<シート名を「26.1」と入力>
InputName = Application.InputBox(Prompt:="シート名を入力してください", Title:="新規")

'<何も入力せずOKの場合、処理を終わりにします。>
If InputName = "" Then Exit Sub

'<キャンセルの場合、処理を終わりにします。>
If InputName = "False" Then Exit Sub

'<全角が混じっている場合に半角へ変換します。>
InputName = StrConv(InputName, vbNarrow)

'<同じワークシート名がないか確認します。>
For Each myWS In Sheets
If myWS.Name = InputName Then
MsgBox "この名前は既に使われています。再入力してください。"
GoTo InputData
End If
Next

’<最後尾にシートが追加>
ActiveSheet.Copy After:=Sheets(Sheets.Count)
'<追加されたワークシートに入力された名前を付けます。>
ActiveSheet.Name = InputName  ’<シート名は:26.1>

'<これをシリアル値にするため、Replaceで.(カンマ)の区切りを/(スラッシュ)に変換
’&の後ろの1は1日の意味
buf = Replace(InputName, ".", "/") & "/1"
’26/1/1になるが、これでは、西暦になるので
’Hを結合させる
buf = "H" & buf
’最後にシリアル値に変換して、セルに代入
Range("K3").Value = DateSerial(Year(buf), Month(buf), 1)

Excel 行高 文字切れ解消 結合部分を考慮し改ページ

Excelで印刷したら、文字切れしてた〜〜〜

結合部分がページまたがる〜〜

そんな悩みを解消できます。

列幅は未対応。

対応したファイルもダウンロードできます。

http://www.pcs-assist.com/bbs.html

Sub 行高調整()

Application.ScreenUpdating = False '画面のちらつきを抑える

Cells.EntireRow.AutoFit ' シート全体の行を自動調整させる

Dim myRow As Long '行の高さは、日々変わるので変数に代入


For myRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row '1行目から最終行まで繰り返す

With Cells(myRow, 2)
' 高さを15足す
.RowHeight = .RowHeight + 25
End With

Next myRow
Application.ScreenUpdating = True 'ちらつきの設定を戻しておく

End Sub
Sub Heightreset()

Rows.RowHeight = 13.5

End Sub


Sub 行結合対応改ページ()
' 水平方向の改ページ位置を結合セル内から外し、上に調整移動する
'----------------------
Const TargetCol = "A" ' <--- 改ページに反映させる結合のある列を指定
'----------------------
Dim Rng As Range
Dim HPB As Long
Dim Rw As Long

Application.ScreenUpdating = False

Cells.EntireRow.AutoFit ' シート全体の行を自動調整させる

Dim myRow As Long


For myRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row

With Cells(myRow, 2)
' 高さを15足す
.RowHeight = .RowHeight + 25
End With

Next myRow

Application.ScreenUpdating = True ' False禁止

'何らかの編集が行われている範囲の右下端セルを選択し、Rng変数にそのセル番地を代入。
Set Rng = Range("a2").SpecialCells(xlCellTypeLastCell).Offset(1, 0)

With ActiveSheet
If .HPageBreaks.Count = 0 Then Exit Sub 'アクティブシートの改ページが0だったら終了

'ResetAllPageBreaksメソッドを使用すると設定した改ページを全て解除する事が出来ます。
ActiveSheet.ResetAllPageBreaks

For HPB = 1 To .HPageBreaks.Count ' 改ページの数だけ回す

'HPageBreaks インデックスによって参照されている水平方向の改ページより上にアクティブ セルがある場合、エラーになるので!
'最終セルをアクティブにする必要がある。
Rng.Activate

'1つ目の改ページ行数をRw変数に代入。18行目と19行目が結合されていれば、19がRwに代入される。
Rw = .HPageBreaks(HPB).Location.Row

'セル番地(最初の改ページ行番号,列番号は1)
'Range("A1").Columnで列番号を取得。結合されているセル番地がアクティブになる。
Cells(Rw, Range(TargetCol & 1).Column).Activate


'18行目と19行目が結合されていれば、selection行は18、Rwは19、Rwの方が大きいので、改ページが変更される
If Selection.Row < Rw Then
.HPageBreaks.Add Before:=ActiveCell '前に水平改ページする
End If

Next HPB '改ページの数だけ繰り返す。
End With
Range("A1").Activate
Set Rng = Nothing
End Sub
Sub 行結合対応改ページと行調整()

'----------------------
Const TargetCol = "A" ' <--- 改ページに反映させる結合のある列を指定
'----------------------
Dim Rng As Range
Dim HPB As Long
Dim Rw As Long

Application.ScreenUpdating = False

Cells.EntireRow.AutoFit ' シート全体の行を自動調整させる

Dim myRow As Long


For myRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row

With Cells(myRow, 2)
' 高さを15足す
.RowHeight = .RowHeight + 25
End With

Next myRow

Application.ScreenUpdating = True ' False禁止

'何らかの編集が行われている範囲の右下端セルを選択し、Rng変数にそのセル番地を代入。
Set Rng = Range("a2").SpecialCells(xlCellTypeLastCell).Offset(1, 0)

With ActiveSheet
If .HPageBreaks.Count = 0 Then Exit Sub 'アクティブシートの改ページが0だったら終了

'ResetAllPageBreaksメソッドを使用すると設定した改ページを全て解除する事が出来ます。
ActiveSheet.ResetAllPageBreaks

For HPB = 1 To .HPageBreaks.Count ' 改ページの数だけ回す

'HPageBreaks インデックスによって参照されている水平方向の改ページより上にアクティブ セルがある場合、エラーになるので!
'最終セルをアクティブにする必要がある。
Rng.Activate

'1つ目の改ページ行数をRw変数に代入。18行目と19行目が結合されていれば、19がRwに代入される。
Rw = .HPageBreaks(HPB).Location.Row

'セル番地(最初の改ページ行番号,列番号は1)
'Range("A1").Columnで列番号を取得。結合されているセル番地がアクティブになる。
Cells(Rw, Range(TargetCol & 1).Column).Activate

'18行目と19行目が結合されていれば、selection行は18、Rwは19、Rwの方が大きいので、改ページが変更される
If Selection.Row < Rw Then
.HPageBreaks.Add Before:=ActiveCell '前に水平改ページする
End If

Next HPB '改ページの数だけ繰り返す。
End With
Range("A1").Activate
Set Rng = Nothing
End Sub

Excelで空白セルを参照すると0と表示されてしまう

Excelで空白セルを参照すると0と表示される。


A1セルが空であれば、ISBLANK( A1 ) は TRUE を


空でなければ FALSE を かえします。


Excelは関数で計算した時点(=を入りょっくした時点で)


参照先が空白な場合は、0を返すようです。

「Microsoft Excel では、空白セルは空 または空白ではなく
 0 と解釈されます。空白のセルは関数では 0 と評価される」

0を表示したくない

<対策その1>
=if(A1="","",A1)
A1が空白だったら、空白、そうでなければA1の値

<対策その2>
Excelオプション→詳細設定
 ゼロの値のセルにゼロを表示するのチェックを外す

<対策その3>
ショートカットメニュー[セルの書式設定]をクリック
 
[セルの書式設定]ダイアログ−[表示形式]タブをクリック
 
[分]欄−「ユーザー定義」をクリック
 ↓
[種類]欄に「#;-#;"";@」と入力
 
[セルの書式設定]ダイアログ−[OK]ボタンをクリック



Excelでは、•正の数•負の数•0(ゼロ)•文字列

Excel VBA セル参照 LEN関数で1となる

ExcelVBAで文字数により、〇列〜〇列の文字の色を変える

VBAを作成していた。

セル参照した結果、文字なしでLEN関数により「0」となるはず

だった。しかし、「1」が戻り値となった。

セル参照で見た目は空白だが?

どうしたものか、考えた。

Fomat関数と組み合わせてみた。(EXCELではTEXT関数)

LEN(FOMAT(セル番地,"####"))

結果、「0」が戻り値となった。

注意)表示形式を”#,###"とすると、カンマもカウントする!

Sub iro()
Dim longlen As Long
Dim MaxRow As Long
Dim i As Long, coli As Long, tasu As Long

MaxRow = Range("AF65536").End(xlUp).Row
tasu = 0
For coli = 32 To 34

For i = 2 To MaxRow
longlen = Len(Format(Cells(i, coli), "####"))
Select Case longlen
Case 1
Cells(i, 12 + tasu).Font.ColorIndex = 1 'フォントカラー黒
Case 2
Range(Cells(i, 11 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case 3
Range(Cells(i, 10 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case 4
Range(Cells(i, 9 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case 5
Range(Cells(i, 8 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case 6
Range(Cells(i, 7 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case 7
Range(Cells(i, 6 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 1
Case Else
Range(Cells(i, 5 + tasu), Cells(i, 12 + tasu)).Font.ColorIndex = 2
End Select
Next i
tasu = tasu + 9
Next coli
End Sub